Радиокнопки не отмечены в jQuery
У меня есть эта строка кода для загрузки страницы:
if ($("input").is(':checked')) {
и он работает нормально, когда установлен переключатель. Однако я хочу наоборот. Что-то вдоль линий
if ($("input").not(.is(':checked'))) {
так что оператор my if запускается, когда ни одна из радиоблок не выбрана. Каков наилучший способ сделать это?
Ответы
Ответ 1
if ( ! $("input").is(':checked') )
Не работает?
Вы также можете попробовать выполнить итерацию по таким элементам:
var iz_checked = true;
$('input').each(function(){
iz_checked = iz_checked && $(this).is(':checked');
});
if ( ! iz_checked )
Ответ 2
if ($("input").is(":not(:checked)"))
AFAIK, это должно работать, протестировано против последнего стабильного jQuery (1.2.6).
Ответ 3
Если мой профайлер firebug работает нормально (и я знаю, как его использовать), это:
$('#communitymode').attr('checked')
быстрее, чем
$('#communitymode').is('checked')
Вы можете попробовать эту страницу:)
И тогда вы можете использовать его как
if($('#communitymode').attr('checked')===true) {
// do something
}
Ответ 4
$("input").is(":not(':checked')"))
Это jquery 1.3, обратите внимание на знаки "и"!
Ответ 5
$('input:radio[checked=false]');
это также будет работать
input:radio:not(:checked)
или
:radio:not(:checked)
Ответ 6
Проверьте это
if($("#selector").is(":checked")) {
alert('Checked');
}
else {
alert('Not checked');
}
Вы можете указать id или класс, например, в месте селектора
Ответ 7
Это тоже работает. Кажется, кратчайшая рабочая нотация:
!$('#selector:checked')