Validate at least one checkbox checked

jquery validation

by Rich Costello

HTML

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/additional-methods.js"></script>
<form id="myform">
    <div>
        <input type="checkbox" name="demo[]" value="colorado" />test0
        <input type="checkbox" name="demo[]" value="michigan" />test1
        <input type="checkbox" name="demo[]" value="colorado" />test2
        <input type="checkbox" name="demo[]" value="michigan" />test3
        <input type="checkbox" name="demo[]" value="colorado" />test4
        <input type="checkbox" name="demo[]" value="michigan" />test5
    </div>
    <div>
        <input type="checkbox" name="service.area" value="colorado" />colorado
        <input type="checkbox" name="service.area" value="michigan" />michigan
    </div>
    <div>
        <input type="checkbox" name="fav[]" value="skiing" />skiing
        <input type="checkbox" name="fav[]" value="volley" />volley
    </div>
    <div>
        <input type="submit" />
    </div>
</form>
<a href="http://docs.jquery.com/Plugins/Validation" target="_blank">Validation Documentation</a>

CSS

a {
    display: block;
    position: absolute;
    bottom: 0;
}
.error {
    color: red;
}
#myform {
    margin: 10px;
}
#myform > div {
    margin-top: 10px;
}

JavaScript

$(document).ready(function () {

    $('#myform').validate({
        rules: {
            'service.area': {
                required: true
            },
            'fav[]': {
                required: true
            },
            'demo[]': {
                required: true
            }
        },
        errorPlacement: function (error, element) {
            //error.insertBefore(element);
            error.insertAfter(element.closest('div'));
        },
        submitHandler: function (form) { // for demo
            alert('valid form');
            return false;
        }
    });

});