Около месяца назад вопрос Митта остался без ответа. К сожалению, сейчас я сталкиваюсь с такой же ситуацией.
http://api.jquery.com/change/#comment-133939395
Вот ситуация: я использую jQuery для захвата изменений в переключателе. Когда выбран переключатель, я включаю поле редактирования. Когда переключатель выключен, я бы хотел, чтобы поле редактирования было отключено.
Включение работает. Когда я выбираю другой переключатель в группе, change
событие не запускается. Кто-нибудь знает, как это исправить?
<input type="radio" id="r1" name="someRadioGroup"/>
<script type="text/javascript">
$("#r1").change(function () {
if ($("#r1").attr("checked")) {
$('#r1edit:input').removeAttr('disabled');
}
else {
$('#r1edit:input').attr('disabled', true);
}
});
</script>
javascript
jquery
html
radio-button
antwarpes
источник
источник
id=r1
Ответы:
Похоже, что
change()
функция вызывается только когда вы проверяете переключатель, а не когда вы его снимаете. Решение, которое я использовал, заключается в том, чтобы привязать событие изменения к каждой радиокнопке:Или вы можете дать всем переключателям одно и то же имя:
Вот рабочий пример jsfiddle (обновленный из комментария Криса Портера.)
Согласно комментарию @ Ray, вам следует избегать использования имен с
.
ними. Эти имена работают в jQuery 1.7.2, но не в других версиях ( пример jsfiddle. ).источник
JQuery часть
вот ДЕМО
источник
.attr('checked')
на.prop('checked')
.Вы можете привязать все переключатели одновременно по имени:
Рабочий пример здесь: http://jsfiddle.net/Ey4fa/
источник
Это нормально работает для меня:
if ($("#r1").is(":checked")) {}
источник
Моя проблема была похожа, и это сработало для меня:
источник
Допустим, эти переключатели находятся внутри элемента,
div
который имеет идентификатор,radioButtons
и что переключатели имеют одно и то же имя (напримерcommonName
):источник
change
Событие не стрелять по отмене выбора является желаемым поведением. Вы должны запустить селектор по всей группе радиостанций, а не только по одной радиокнопке. И ваша радиогруппа должна иметь одинаковое имя (с разными значениями)Рассмотрим следующий код:
У меня такой же вариант использования, как и у вас, т. Е. Для отображения поля ввода, когда выбран определенный переключатель. Если бы событие происходило и при отмене выбора, я бы получал 2 события каждый раз.
источник
Та же проблема здесь, это работало просто отлично:
источник
С Ajax у меня работали:
Html:
Javascript:
И php:
источник