Gagal validasi date pada Internet Explorer

jQuery Validation Plugin v1.17.0 menggunakan “new Date” untuk validasi. Sehingga setiap browser akan menghasilkan tanggal yang berbeda2 dari hasil parse. Contoh: pada IE, javascript tidak bisa parse value “17/07/2019 15.08.29” (karena menggunakan titik) sehingga date dianggap tidak sesuai format. Sedangkan Chrome bisa.

Letak fungsi validasi tersebut ada di file jQuery.validate.js:1398

 date: function( value, element ) { 
     return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() ); 
},

regex yang cocok utk parsing tipe date dari C# “17/07/2019 15.08.29” adalah /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}([ T](0?[1-9]|[1][0-9]|[2][0-3])[.:](0?[1-9]|[1-5][0-9])[.:](0?[1-9]|[1-5][0-9]))?$/ , sehingga fungsi validasi menjadi

date: function( value, element ) {
     return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() || /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}([ T](0?[1-9]|[1][0-9]|[2][0-3])[.:](0?[1-9]|[1-5][0-9])[.:](0?[1-9]|[1-5][0-9]))?$/.test( value ) );
 },

Kenji Prahyudi has written 7 articles

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>