case test jquery.validate

by ltdeta

HTML

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/jquery.validate.js"></script>
        <form action="#" method="post" id="mailer" autocomplete="off">
            <label>
                <span>name</span>
                <input type="text" name="name" required="required" value="" />
            </label><br /><br />
            <label>
                <span>email</span>
                <input type="email" name="email_address"  value="" />
            </label><br /><br />
            <label>
                <span>request</span>
                <textarea name="request" required="required" lineCount="1,2"></textarea>
            </label><br /><br />
            <a href="javascript:;" id="submit">submit</a>
        </form>

JavaScript

//================================= AZIONE FORM
$('#submit').click(function() {
    $('#mailer').submit();
    return false;
});

//================================= VALIDAZIONE FORM
$Validator = $('#mailer').validate({
    focusInvalid: false,
    debug: true,
    rules: {
        name: {
            required: true
        },
        email_address: {
            required: true,
            email: true
        },
        request: {
            required: true
        }
    },
    messages: {
        name: {
            required: 'name required'
        },
        email_address: {
            required: 'email required',
            email: 'email address is not valid'
        },
        request: {
            required: 'request required'
        }
    }
});

$.validator.addMethod("lineCount",function(value,element,params) {
    if (typeof params == 'string') {
        params = params.split(",");
    }
    var maxLines = params[0],
    maxChars = params[1],
    retValue = false;
    var newLines = value.split("\n").length;
    console.log(newLines+' n:'+maxLines);
    if (newLines<=maxLines || maxLines==-1)
      retValue=true;

    if (maxChars != -1) {
        //alert( $.validator.methods.maxlength.call(this, value, element, params[1]));
        retValue = retValue &&  $.validator.methods.maxlength.call(this, value, element, params[1]);
    }        
    return retValue 
        
}, $.validator.format("not more than {0} rows and {1} chars allowed."));