40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
|
/**
|
||
|
* Return true, if the value is a valid date, also making this formal check dd/mm/yyyy.
|
||
|
*
|
||
|
* @example $.validator.methods.date("01/01/1900")
|
||
|
* @result true
|
||
|
*
|
||
|
* @example $.validator.methods.date("01/13/1990")
|
||
|
* @result false
|
||
|
*
|
||
|
* @example $.validator.methods.date("01.01.1900")
|
||
|
* @result false
|
||
|
*
|
||
|
* @example <input name="pippo" class="{dateITA:true}" />
|
||
|
* @desc Declares an optional input element whose value must be a valid date.
|
||
|
*
|
||
|
* @name $.validator.methods.dateITA
|
||
|
* @type Boolean
|
||
|
* @cat Plugins/Validate/Methods
|
||
|
*/
|
||
|
$.validator.addMethod( "dateITA", function( value, element ) {
|
||
|
var check = false,
|
||
|
re = /^\d{1,2}\/\d{1,2}\/\d{4}$/,
|
||
|
adata, gg, mm, aaaa, xdata;
|
||
|
if ( re.test( value ) ) {
|
||
|
adata = value.split( "/" );
|
||
|
gg = parseInt( adata[ 0 ], 10 );
|
||
|
mm = parseInt( adata[ 1 ], 10 );
|
||
|
aaaa = parseInt( adata[ 2 ], 10 );
|
||
|
xdata = new Date( Date.UTC( aaaa, mm - 1, gg, 12, 0, 0, 0 ) );
|
||
|
if ( ( xdata.getUTCFullYear() === aaaa ) && ( xdata.getUTCMonth() === mm - 1 ) && ( xdata.getUTCDate() === gg ) ) {
|
||
|
check = true;
|
||
|
} else {
|
||
|
check = false;
|
||
|
}
|
||
|
} else {
|
||
|
check = false;
|
||
|
}
|
||
|
return this.optional( element ) || check;
|
||
|
}, $.validator.messages.date );
|