jquery datepicker:validation日期

我已经设置了一个jquery类:

$(function() { $( ".datepickerIT" ).datepicker({ showOtherMonths: true, selectOtherMonths: true, showAnim: "clip", dateFormat: "dd/mm/yy", minDate: "01/01/1925", maxDate: "31/12/2050", changeMonth: true, changeYear: true, yearRange: "1925:2050", regional: "it" }); }); 

我想添加一个日期检查控件,如果用户输入不是有效日期,则会发出警报

如何在类“.datepickerIT”中添加这样的支票?

 onClose: function(dateText, inst) { try { $.datepicker.parseDate('dd/mm/yy', dateText); } catch (e) { alert(e); }; 

什么插件我必须包括在头部?

建议不要使用Date.parse ,因为不同主机解析日期字符串的方式仍然存在很多差异。 [1] [2]

我会用时间进行日期validation。

 moment(newDate, 'DD/MM/YYYY', true).isValid() 

jsfiddle: http : //jsfiddle.net/dw8xyzd4/

[1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse [2] 为什么Date.parse会给出错误的结果?

您可以通过以下方式validation日期(您不需要插件): –

 $(document).ready(function(){ $("#datepicker").datepicker(); $("#datepicker").blur(function(){ val = $(this).val(); val1 = Date.parse(val); if (isNaN(val1)==true && val!==''){ alert("error") } else{ console.log(val1); } }); }); 

工作小提琴

更新:@Razan Paul提到了正确的方法

Date.parse()不支持dd / mm / yyyy和datepicker getDate在任何解析错误时将日期设置为当前因此使用新日期(yyyy,mm,dd)进行此定制检查以validation转换后日期部分是否一致:

 $(function() { $(".datepickerIT") .datepicker({ showOtherMonths: true, selectOtherMonths: true, showAnim: "clip", dateFormat: "dd/mm/yy", minDate: "01/01/1925", maxDate: "31/12/2050", changeMonth: true, changeYear: true, yearRange: "1925:2050", regional: "it" }) .on('blur', function() { // This check is for dd/mm/yyyy format but can be easily adapted to any other if(this.value.match(/\d{1,2}[^\d]\d{1,2}[^\d]\d{4,4}/gi) == null) alert('Invalid date format'); else { var t = this.value.split(/[^\d]/); var dd = parseInt(t[0], 10); var m0 = parseInt(t[1], 10) - 1; // Month in JavaScript Date object is 0-based var yyyy = parseInt(t[2], 10); var d = new Date(yyyy, m0, dd); // new Date(2017, 13, 32) is still valid if(d.getDate() != dd || d.getMonth() != m0 || d.getFullYear() != yyyy) alert('Invalid date value'); } }); }); 
 $(document).ready(function(){ // Check in date $("#in" ).datepick({ dateFormat: "mm/dd/yy", minDate:"0+1", maxDate: "2years", changeMonth:true, changeYear:true, onSelect:function(date_text,inst){ var from = new Date(date_text); $( "#out" ).datepicker( "option", "minDate",from); } }); // Check out date }); 

注意: – 这里是你的字段名称,而datepick是你的插件名称。