SO - 25381434

by Arun P Johny

HTML

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.form/3.32/jquery.form.js"></script>
<script src="//cdn.jsdelivr.net/jquery.metadata/2.0/jquery.metadata.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.11.1/jquery.validate.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.11.1/additional-methods.js"></script>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.0/css/bootstrap.css">
<script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.0/js/bootstrap.js"></script>
<form id="form" method="post" action="">
    <input name="name" />
    <input type="submit" class="button" value="Submit" />
</form>

JavaScript

jQuery(function ($) {
    jQuery.validator.addMethod("exactLength", function (value, element, param) {
        var len = value.length;
        if ($.isArray(param)) {
            if (param.indexOf(len) !== -1) {
                return true;
            } else {
                return false;
            }
        } else {
            if (param != len) {
                return false;
            } else {
                return true;
            }
        }
    }, function (param, element) {
        return "Value must have " + param.join(',') + " characters"
    });

    var validator = $('#form').validate({
        rules: {
            name: {
                exactLength: [3, 5, 7]
            }
        },
        messages: {}
    });
});