Я использую плагин jQuery ScrewDefaultButtons для стилизации своих переключателей, но кажется, что он имеет побочный эффект, который не возвращает правильное значение при получении через jQuery. Я запускаю функцию, когда нажимают, и я пытаюсь получить значение переключателя, выбранного пользователем, но, похоже, возвращает значение ранее выбранного переключателя, а не только тот, который был выбран.
Если я удалю класс pretty_rb
, который отключит стилизацию, тогда он отлично работает.
Я пытаюсь получить значение с помощью:
jQuery('input[name=tax_account_type]:checked').val();
Мой HTML:
<input type="radio" name="tax_account_type" id="individual" class="pretty_rb" value="0" onclick="updateRegForm();" checked required>
<input type="radio" name="tax_account_type" id="business" class="pretty_rb" value="1" onclick="updateRegForm();" required>
Изменить: Fiddle: http://jsfiddle.net/94UtB/2/
Проблема заключается в том, что ScrewDefaultButtons
обертывает input
элементы в div
а затем скрывает input
элемент.
Этот div имеет событие click, которое проверяет правильный скрытый элемент input
.
Однако. Поскольку у вас есть событие onClick
ваше событие запускается до изменения.
Вот почему вы получаете old
ценность.
Чтобы решить эту проблему, добавьте следующий код после вызова функции screwDefaultButtons
:
$('.styledRadio').on('click', updateRegForm);
или
$('.pretty_rb').on('click', updateRegForm);
Не забудьте удалить атрибут onlick из HTML.
check
, поэтому не знал, как ее решить.
updateRegForm()
?updateRegForm()
- это простая функция AJAX, которая не имеет к этомуupdateRegForm()
отношения.