Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обработчик событий (https://javascript.ru/forum/misc/64771-obrabotchik-sobytijj.html)

teremok317 04.09.2016 15:59

Обработчик событий
 
Всем привет, начал учить js и jQuery. Читаю и тут же практикуюсь, ресурс отличный, но столкнулся с проблемой. Мне нужно получать значение value при клике, просто его получить не проблема но оно подставляется только после перезагрузки страницы. А мне надо что б стразу в расчет выходило. Ясно что нужно как то чтоб обработчик событий обрабатывал клик но у меня пока не выходит... Вот пример из калькулятора, я специально задействовал разные типы полей, есть и "радио" кнопки, и поля ввода, и списки селект. Для начала, как получить значени value при клике в переменную?
<ul>
<li><label  class="calc-radio"><input id="radio_1" name="radio_btn" type="radio" value="123"  /><i>кнопка_1</i></label></li>
</ul>

Просто объясните пожалуйста новичку как лучше получать значения в переменную при клике или смене значения...

teremok317 04.09.2016 16:09

Цитата:

Сообщение от Rise (Сообщение 427646)

Спасибо, конечно я читал но выше описанную задачу так и не решил... Если бы решил вопрос сюда не писал.

teremok317 04.09.2016 17:16

Цитата:

Сообщение от Rise (Сообщение 427650)
teremok317, что тебе не понятно там вот пример поля ввода?

Я попросил рабочий код применимый к html который я скинул. Нужно что бы по клику по этому "радио" значение value писалось в глобальную переменную, которую могу использовать в формулах расчета. У меня получилось выводить значение, но оно почему то выводится только после перезагрузки страницы. Вот и прошу рабочий скрипт, что бы узнать как это делать правильно.

Coriolan161 04.09.2016 17:19

teremok317,
давай пиши сюда что накодил

teremok317 04.09.2016 17:42

Ну тогда по порядку.
У меня несколько радио кнопок разбирать будем на примере 1й
<ul>
<li><label  class="calc-radio"><input id="radio_1" name="radio_btn" type="radio" value=""  /><i>кнопка_1</i></label></li>
</ul>

value изначально пуст
я беру значение из моей таблички со значениями в html при помощи
var perem1 = document.getElementById("znachenie").innerHTML;

$('#radio_1').val(perem1);

Тут подставляю в value значение переменной
var result_radio_btn $('input:radio[name=radio_btn]:checked').val();

Ну и получаю значение выбранной кнопки, у них всех одно имя. Но оно подставляется только при перезагрузки страницы. И тут я приплыл...

teremok317 04.09.2016 17:45

Я просил готовый код что бы уловить связь. Между тем как создать глобальную переменную и записать в неё значение по клику. И проделать подобное с остальными элементами взаимодействия.

Coriolan161 04.09.2016 18:05

teremok317,
1) Зачем у всех кнопок одни и те же имена. Наверно, лучше дать им один класс

2)Кучу глобальных переменных не надо. У тебя будет один объект {} в котором и будут лежать твои значения. Типо такой stateProvider

3) Твой косяк с перезагрузкой в том, что ты делаешь
$('input:radio[name=radio_btn]:checked')

Ты понимаешь что ты делаешь? Ты достаешь из коллекцию тех радио, которые чекнуты. Но у тебя их изначально нет. И не будет. Потому что надо ставить обработчики чеканья
4) Дай им один класс, что не писать эти свои крутые селекторы

teremok317 05.09.2016 01:01

Ну кажется что то понял по поводу по поводу обработчика чеканья
получилось вот что
$('[name="radio_btn"]').on("change", function(){
var v_znchenie = $(this).val();
});

Но как вывести это теперь в внешнюю переменную? Или как то иначе можно получать выбранное значение? И да спасибо за
$('').html();

Если кому то кажутся странными, может даже глупыми вопросы. Ну у меня метод обучения такой. Я всегда берусь за выполнение задания делаю его по мере сил и возможностей. А спустя время после чтения книг и практики, возвращаюсь к нему и переделываю и смотрю на прогресс.

teremok317 05.09.2016 02:47

Все я разобрался ))) Только не закончил калькулятор... Там расстояние с многими условиями. А я спать хочу... Сделал все так. Объявил все переменные, написал функцию, обработчик, и вызвал функцию в обработчике который обрабатывал сразу все типы взаимодействия. В итоге калькулятор заработал. Правда со статическим расстоянием. Завтра буду выводить динамическое в зависимости от кол-ва и расстояния. Если будут сложности напишу. Итого за 6-7 часов у меня таки получилось с 0 написать калькулятор до этого я на js ничего не писал...


Часовой пояс GMT +3, время: 14:16.