2014-03-13 25 views
4

所以我有一個複選框需要在提交前被選中的字段。 問題在於它不是一個常數的複選框,因爲它取決於從數據庫中提取的值的數量,這些值將被檢查。要求選擇所有的車箱

基本上,複選框的數量範圍爲1到9。

我使用AJAX,所以我沒有列在一個形式中,'checkbale項的發送值,相反,它們是在列表中。像這樣的東西

Unit 1: <input type="checkbox" name="unit[]" value="1"/> 
Unit 2: <input type="checkbox" name="unit[]" value="2"/> 
Unit 3: <input type="checkbox" name="unit[]" value="3"/> 
Unit 4: <input type="checkbox" name="unit[]" value="4"/> 

<input type="submit" value="register units"/> 

問題是:我如何確保每次在提交之前檢查所有複選框。

回答

4

這樣的:

if($('input[type="checkbox"]:checked').length == $('input[type="checkbox"]').length){ 
    //all checkboxes are checked. 
} 

您還可以使用name屬性使用$('input[name="unit[]"]'$('input[name="unit[]"]:checked')

1

目標元素嘗試這樣的事情

if($('form input:checked').length == $('form input:checkbox').length){ 
//submit 
} 
+0

太棒了!我怎麼沒有想到這個? :( –

0
在提交處理

,檢查長度的未勾選複選框,如果它大於0,則顯示錯誤消息並阻止默認操作

if($('input[name="unit[]"]').not(':checked').length){ 
    alert(); 
    return; 
} 
+0

謝謝,但是這會通過在任何給定時間點上列出的所有複選框,而不管所述複選框的數量是多少? –

+0

@JohnKariuki是....所有複選框的名稱爲'unit []' –

+0

@downvoter我錯過了什麼 –

0
<input type="checkbox" name="unit[]" value="1"/> 
    <input type="checkbox" name="unit[]" value="2"/> 
    <input type="checkbox" name="unit[]" value="3"/> 
    <input type="checkbox" name="unit[]" value="4"/> 
<input type="button" id="buttonsubmit" /> 

這是你的HTML

這裏是jQuery的

$('#buttonsubmit').click(function(){ 
$('.checkme').each(function(){ 
    var aa="all" 
    if(!$(this).is(':checked')) 
    { 
    aa='notchecked'; 

    } 

    if(aa=='notchecked') 
        { 

        alert('all not checked'); 
        } 
        else 

        { 
         alert('all checked'); 

        } 

}); 
}); 

結帳這個演示Click here

2

你也可以做這個way-

 <form name="myForm" action="targetpage.asp" onsubmit="return validateForm();" method="post"> 
     Unit 1: <input type="checkbox" name="unit" value="1" /> 
     Unit 2: <input type="checkbox" name="unit" value="2" /> 
     Unit 3: <input type="checkbox" name="unit" value="3" /> 
     Unit 4: <input type="checkbox" name="unit" value="4" /> 
     <input type="submit" value="submit" id="XISubmit" /> 
    </form> 



<script> 
    function validateForm() { 
     if (validateCheckbox(document.forms["myForm"]["unit"])) { 
      alert('All good!'); 
      return false; 
     } 
     else { 
      alert('Please select all checkboxes.'); 
      return false; 
     } 
    } 

    function validateCheckbox(chk) { 
     for (i = 0; i < chk.length; ++i) { 
      if (!chk[i].checked) return false; 
     } 
     return true; 
    } 
</script>