Событие jQuery click на радиокнопке не запускается
У меня есть следующий код для запуска события click на некоторых переключателях! но он не уволен! Кто-нибудь может мне с этим помочь!
КОД:
$("#inline_content input[name='type']").click(function(){
if($('input:radio[name=type]:checked').val() == "walk_in"){
$('#select-table > .roomNumber').attr('enabled',false);
}
});
КНОПКИ РАДИО
<form class="type">
<input type="radio" name="type" checked="checked" value="guest">In House</input>
<input type="radio" name="type" value="walk_in">Walk In</input>
</form>.
Обновление
Пробовал onChange()
тоже, но не работал.
Ответы
Ответ 1
Он стреляет. Проверьте демонстрацию http://jsfiddle.net/yeyene/kbAk3/
$("#inline_content input[name='type']").click(function(){
alert('You clicked radio!');
if($('input:radio[name=type]:checked').val() == "walk_in"){
alert($('input:radio[name=type]:checked').val());
//$('#select-table > .roomNumber').attr('enabled',false);
}
});
Ответ 2
В этом коде есть пара ошибок:
- Вы используете
<input>
неправильный путь. Вы должны использовать <label>
, если хотите, чтобы текст за ним можно было щелкнуть.
- Он устанавливает атрибут
enabled
, которого не существует. Вместо этого используйте disabled
.
- Если это будет атрибут, значение не должно быть
false
, используйте disabled="disabled"
или просто disabled
без значения.
- Если вы хотите, чтобы кто-то нажал на событие формы, которое изменит его значение (например, флажки и радиокнопки), вместо этого используйте
.change()
.
Я не уверен, что должен делать ваш код. Я предполагаю, что вы хотите отключить поле ввода с классом roomNumber
после того, как кто-то выберет "Прогулка" (и, возможно, снова включите, когда его не выбрали). Если да, попробуйте этот код:
HTML:
<form class="type">
<p>
<input type="radio" name="type" checked="checked" id="guest" value="guest" />
<label for="guest">In House</label>
</p>
<p>
<input type="radio" name="type" id="walk_in" value="walk_in" />
<label for="walk_in">Walk in</label>
</p>
<p>
<input type="text" name="roomnumber" class="roomNumber" value="12345" />
</p>
</form>
JavaScript:
$("form input:radio").change(function () {
if ($(this).val() == "walk_in") {
// Disable your roomnumber element here
$('.roomNumber').attr('disabled', 'disabled');
} else {
// Re-enable here I guess
$('.roomNumber').removeAttr('disabled');
}
});
Я создал скрипку здесь: http://jsfiddle.net/k28xd/1/
Ответ 3
Другой способ
$("#inline_content input[name='type']").change(function () {
if ($(this).val() == "walk_in" && $(this).is(":checked")) {
$('#select-table > .roomNumber').attr('enabled', false);
}
});
Демо - http://jsfiddle.net/cB6xV/
Ответ 4
Кажется, что вы #inline_content
не существует! Удалите jQuery-Selector или проверьте родительские элементы, возможно, у вас есть опечатка или забыли добавить идентификатор.
(сделал вам jsfiddle, работает после добавления родительского <div id="inline_content">
: http://jsfiddle.net/J5HdN/)
Ответ 5
поместите ur js-код в форму html или используйте $(document).ready(function() {}) и попробуйте это.
$('#inline_content input[type="radio"]').click(function(){
if($(this).val() == "walk_in"){
alert('ok');
}
});
Ответ 6
Лично для меня лучшим решением для аналогичной проблемы было:
HTML
<input type="radio" name="selectAll" value="true" />
<input type="radio" name="selectAll" value="false" />
JQuery
var $selectAll = $( "input:radio[name=selectAll]" );
$selectAll.on( "change", function() {
console.log( "selectAll: " + $(this).val() );
// or
alert( "selectAll: " + $(this).val() );
});
* Событие "click" может работать вместо "изменения".
Надеюсь, это поможет!