Радиобоксы и JQuery - PullRequest
       10

Радиобоксы и JQuery

0 голосов
/ 27 января 2010

Вот мой HTML-код:

<label><input type="radio" id="fNuttig" /> Nuttig</label>
<label><input type="radio" id="fNietNuttig" /> Niet nuttig</label>
<label><input type="radio" id="fNogUitTeMakenNuttig" />Nog uit te maken</label>

А вот мой код JavaScript:

if ($('#fNuttig').val() == 'on') {
 nuttig = 'Nuttig';
} else if ($('#fNietNuttig').val() =='on') {
 nuttig = 'Niet nuttig';
} else if ($('#fNogUitTeMakenNuttig').val() =='on') {
 nuttig = 'Nog uit te maken';
} else {
 nuttig = 'ongeldige invoer';
}
alert($('#fNuttig').val()); // Gives 'on'
alert($('#fNietNuttig').val());  // Gives 'on'
alert($('#fNogUitTeMakenNuttig').val());  // Gives 'on'
alert(nuttig);  // Gives 'on'

Этот код вызывается при нажатии кнопки.

Почему все мои радиокнопки включены? Если я добавляю тег 'name =' и выполняю то же самое с помощью PHP, он работает, а в javascript он говорит, что мои кнопки всегда включены.

Что я делаю не так?

Yvan

Ответы [ 2 ]

2 голосов
/ 27 января 2010

Вы хотите использовать if ( $('#fNuttig').is(':checked') ) вместо if ( $('#fNuttig').val() == 'on' ).

$('#fNuttig').val() просто извлекает значение атрибута значения, независимо от того, отмечено оно или нет. $('#fNuttig').is(':checked') вернет true, если он отмечен, и false, если нет.

1 голос
/ 27 января 2010

В вашем HTML-коде отсутствует атрибут name. Элемент input обязательно должен иметь их. Радио с тем же именем может включить только один из них. какая-либо конкретная причина, почему вы пишете код JS, как указано выше?

Лучше получить к нему доступ по имени

<input name="radio" .../>

$('input[name="radio"]').val();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...