Validate a date in format dd-mm-YYYY

23.01.2010

We're using validation jquery plugin.
To check a date in our desired format, add a new method like this (the function also check for date validity, not only the format - 30/30/3030 will return false):

    $.validator.addMethod(
        "roDate",
        function(value, element) {
            var check = false;
            var re = /^\d{1,2}-\d{1,2}-\d{4}$/;
            if( re.test(value)) {
                var adata = value.split('-');
                var gg = parseInt(adata[0],10);
                var mm = parseInt(adata[1],10);
                var aaaa = parseInt(adata[2],10);
                var xdata = new Date(aaaa,mm-1,gg);
                if ( ( xdata.getFullYear() == aaaa ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == gg ) ) {
                        check = true;
                } else {
                        check = false;
                }
            } else
                    check = false;
            return this.optional(element) || check;
        }, 
        "Date required in dd-mm-yyyy format"
    );

And check it like this:

    $("#form_id").validate({ 
        rules: { 
             date_field: { required: true, roDate: true }
        },
        messages: { 
             date_field: "Your custom error message", 
        }
    });

 
js/jquery_validate_date.txt · Last modified: 2011/11/25 10:45 (external edit)
Email address
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki