2014-03-13 26 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>