0

I am trying to validate my checkboxes to ensure that a user clicks at least one checkbox. I am getting checkbox Names from the database. Can anyone solve this please.

$(function(){
    $("#userFrm").validate({
        rules: {
            Item1: {
                required: true,
            },
        },
        messages: {
            Item1: "Check atleast one box",
        }
    });
}
<form class="form-horizontal" action="" method="post" name="groupFrm" id="groupFrm">
    <div class="control-group">
        <label class="control-label">    
            Access Permission
            <span class="error">*</span>    
        </label>
        <div class="controls">
            <div class="text-group">
                {section name=source loop=$source}
                    <input type="checkbox" name="option1[]" id="Item1" class="first" {if in_array($source[source].id,$permission_user,true)} checked="checked"{/if} value="{$source[source].id}"  />
                    {$source[source].mod_name}
                {/section}  
            </div>
        </div>
    </div>
    <div class="form-actions">
        <input type="submit" name="edit_permission" id="edit_permission" value="Update" class="btn btn-success " onclick="validate()">
    </div>
</form>             
Rory McCrossan
  • 331,213
  • 40
  • 305
  • 339
Manoj Kumar
  • 107
  • 1
  • 2
  • 10

2 Answers2

0

You have use custom validation code to validate check box. Try this.

$.validator.addMethod('yourRuleName', function (val, elm, param) {
    //Validation code Here
    return valid; 
}, 'Your error message here');


$('#userFrm').validate({
    rules: {
        item1: {
            yourRuleName: true
        }
    }
});
selvan
  • 1,183
  • 3
  • 16
  • 24
0

This will return true if at least one was checked:

$("input[type=checkbox]:checked").length>0

Or, this will count only the checked checkboxes within that form of yours:

$("#groupFrm:checkbox:checked").length>0
Okku
  • 7,468
  • 4
  • 30
  • 43