2013-03-26 115 views
0

我想在提交表單時突出顯示任何未選中的複選框。我在.new_order中總共有6個複選框,並且我已經開始編寫該功能,但是我有點卡住瞭如何在中添加高亮級別未選中的複選框.new_orderjQuery:檢查複選框是否被選中

$('#orderconfirm').click(function() { 
    if ($('.modal .modal-body .new_order :checkbox').is(':unchecked') { 
     $(this).addClass('highlight'); 
    } 
}); 

此代碼是否會迭代每個複選框?我覺得我失去了一些東西。此外,這個代碼必須禁用按鈕,直到每個複選框被選中。任何幫助將是偉大的!

+1

http://stackoverflow.com/questions/2204250/check-if-checkbox -is-checked-with-jquery – lifetimes 2013-03-26 23:52:11

+0

如果_any_框未選中,你的'.is()'將返回true – Alnitak 2013-03-26 23:54:44

回答

2

嘗試在選擇器的末尾使用:not(:checked),在此調用.addClass()將類添加到返回的所有對象。

Demo

$('#orderconfirm').click(function() { 
    $('.modal .modal-body .new_order input:checkbox:not(:checked)') 
     .addClass('highlight'); 
}); 
+1

句法錯誤 – zerkms 2013-03-26 23:52:51

+0

@zerkms更新,修正。 – 2013-03-27 00:02:04

2

這裏是下述方法的一個工作jsFiddle

你可以使用jQuery的each()通過你的類進行迭代,並添加CSS類取其元素滿足您的條件:

$('#orderconfirm').click(function() { 
    $('.new_order').each(function(){ 
    if($(this).prop('checked') === false) { 
     $(this).addClass('highlight'); 
    } 
    }); 
});