禁用複選框,我有以下代碼中$(document).ready(function()
,它位於:jQuery的上
$('.Spec').prop('disabled', !$('.Spec').is(':checked'));
當頁面加載我所試圖做的是,禁用任何複選框與不檢查得到的類別Spec
。
上述任何原因導致無效的原因?
禁用複選框,我有以下代碼中$(document).ready(function()
,它位於:jQuery的上
$('.Spec').prop('disabled', !$('.Spec').is(':checked'));
當頁面加載我所試圖做的是,禁用任何複選框與不檢查得到的類別Spec
。
上述任何原因導致無效的原因?
首先,你在做一個深思熟慮的很差選擇機制的布爾條件;如何知道Spec類中的哪個特定複選框是您需要評估的複選框?
我可能會建議的東西沿着這些線路更多:
$('.Spec').each(function() {
if(!$(this).prop('checked')) {
$(this).prop('disabled', true);
}
});
是的,這是一種享受 - 非常感謝。我已經採納了關於布爾條件的反饋,也是如此。 –
!$('.Spec').is(':checked')
將返回false,如果任何複選框與該類目前檢查,所以所有複選框將不得不取消選中。
這聽起來像你想做到這一點單獨對每個複選框,所以像:
$('.Spec').prop('disabled', function() {
return !this.checked;
});
不知道,但是,這應該工作。
$('.spec').each(function() {
if(!$(this).is(':checked')) {
$(this).prop('disabled', true);
}
});
這不工作... –
是的,我試圖實現大衛,因爲你很快回復,但這是行不通的。你和Vector Gorogth的回覆之間有一些區別:使用'!'和刪除':'並且可能使用'prop'兩次? –
對不起,即將離開,所以我沒有時間去測試。我知道其他答案奏效,但我編輯了我的作品。 –
你可以試試這個:
var _checked;
$('.Spec').each(function() {
_checked = ($(this).is(':checked')) ? false : true;
$(this).prop('disabled', _checked);
});
查看更新jsfiddle
謝謝Rahil,我最終與Vector一起去了,因爲它更簡潔一點。 –
@DSG我不認爲它......如果你添加一對夫婦更復選框將小提琴,它失敗.. http://jsfiddle.net/FMKAn/1/ – Charlie74