2013-11-27 2 views
2

У меня есть следующий код, который находится в пределах $(document).ready(function():JQuery отключить флажок на классе

$('.Spec').prop('disabled', !$('.Spec').is(':checked')); 

То, что я пытаюсь сделать, это когда страница загружается, отключить любой флажок с классом Spec, которые не проверяются.

Любая причина, по которой вышеуказанное не работает?

+0

@DSG Я не думаю, что это делает ... если добавить еще пару флажков вашей скрипке, он терпит неудачу .. http://jsfiddle.net/FMKAn/1/ – Charlie74

ответ

5

Начнет с того, что вы делаете очень плохо продуманный механизм переключения для булева условия ; как он будет знать, какой особый флажок в классе Spec - тот, который вам нужно оценить?

я мог бы предложить что-то больше вдоль этих линий:

$('.Spec').each(function() { 
    if(!$(this).prop('checked')) { 
     $(this).prop('disabled', true); 
    } 
}); 
+0

Да, это работает - большое спасибо. Я взял на борт отзывы о булевом состоянии, спасибо за это. –

3

!$('.Spec').is(':checked') вернет false, если в данный момент установлен флажок с этим классом, поэтому все флажки должны быть сняты.

Это звучит, как вы пытаетесь сделать это индивидуально на каждый чекбоксе, так что-то вроде:

$('.Spec').prop('disabled', function() { 
    return !this.checked; 
}); 
2

Никакая идея, однако, это должно работать.

$('.spec').each(function() { 
    if(!$(this).is(':checked')) { 
     $(this).prop('disabled', true); 
    } 
}); 
+0

это не работает ... –

+0

Да, я пытался реализовать Дэвида, поскольку вы быстро ответили, но это не работает. Несколько различий между вашим и ответом Vector Gorogth с использованием '!' И удаление ':' и, вероятно, использование 'prop' дважды? –

+0

Извините, был готов уйти, поэтому у меня не было времени на тестирование. Я знаю, что другой ответ сработал, однако я отредактировал мой, чтобы он работал. –

1

Вы можете попробовать это:

var _checked; 
$('.Spec').each(function() { 
    _checked = ($(this).is(':checked')) ? false : true; 
    $(this).prop('disabled', _checked); 
}); 

Смотрите обновленный jsfiddle

+0

Спасибо, Рахиль, я пошел с Vector в конце, поскольку это было немного более кратким. –

Смежные вопросы