如何验证是否选中了3个复选框?

时间:2013-11-18 23:02:41

标签: javascript jquery validation checkbox

我目前正在使用以下jQuery validation engine.。我希望最少选择3个不同的复选框,html如下所示:

<fieldset class="group" id="tajirr_user_complete_registration_wanita">
           <legend><label class="required">Wanita</label></legend>
           <ul class="checkbox">
              <li><input type="checkbox" class="validate[minCheckbox[3], maxCheckbox[5]]" data-prompt-position="topLeft:0,-30" id="tajirr_user_complete_registration_wanita_0" name="tajirr_user_complete_registration[wanita][]" value="10"><label for="tajirr_user_complete_registration_wanita_0">Atasan &amp; Bawahan</label></li>
              <li><input type="checkbox" class="validate[minCheckbox[3], maxCheckbox[5]]" data-prompt-position="topLeft:0,-30" id="tajirr_user_complete_registration_wanita_1" name="tajirr_user_complete_registration[wanita][]" value="11"><label for="tajirr_user_complete_registration_wanita_1">Dress</label></li>
           </ul>
</fieldset>
<fieldset class="group" id="tajirr_user_complete_registration_pria">
       <legend><label class="required">Pria</label></legend>
       <ul class="checkbox">
          <li><input type="checkbox" class="validate[minCheckbox[3], maxCheckbox[5]]" data-prompt-position="topLeft:0,-30" id="tajirr_user_complete_registration_pria_0" name="tajirr_user_complete_registration[pria][]" value="19"><label for="tajirr_user_complete_registration_pria_0">Atasan &amp; Bawahan</label></li>
          <li><input type="checkbox" class="validate[minCheckbox[3], maxCheckbox[5]]" data-prompt-position="topLeft:0,-30" id="tajirr_user_complete_registration_pria_1" name="tajirr_user_complete_registration[pria][]" value="21"><label for="tajirr_user_complete_registration_pria_1">Sepatu</label></li>
          <li><input type="checkbox" class="validate[minCheckbox[3], maxCheckbox[5]]" data-prompt-position="topLeft:0,-30" id="tajirr_user_complete_registration_pria_2" name="tajirr_user_complete_registration[pria][]" value="22"><label for="tajirr_user_complete_registration_pria_2">Batik</label></li>
       </ul>
</fieldset>

我想在表单上进行验证,以便至少选中3个复选框。但是上述方法无效,因为minCheckbox根据name属性进行了验证,该属性有两种形式:tajirr_user_complete_registration[pria][],另一种tajirr_user_complete_registration[wanita][]。我可以更改名称,以便它可以正常工作,但它打破了其他东西。我怎样才能使它在整个表格中得到验证?

3 个答案:

答案 0 :(得分:1)

如果你想要检查至少3个中的3个,你可以这样做。无需验证: http://jsfiddle.net/nSgC8/

function check(){
var checked=0;
    $( "input:checkbox" ).each(function() {
        if($(this).is(':checked')){
        checked++;
        }
});
    if(checked>2){
    alert('Ok!');
    }
    else{
    alert('At least 3 checkboxes need to be selected!');
    }
}

答案 1 :(得分:0)

onsubmit的{​​{1}}事件中,您可以使用类似的内容代替验证者:

<form>

我使用了这段代码:

if ($("input:checked").length > 2)
    // Proceed
else
    // Alert

小提琴:http://jsfiddle.net/praveenscience/SFF4P/

答案 2 :(得分:0)

var checked_count = $('input:checkbox:checked').length;
alert(checked_count + " checkboxes are checked");