FromDate和ToDate的validation不适用于jquery中动态创建的datepicker控件

我的要求是,我有两个日历datepicker控件。 FromDateToDate 。 我想要的是,每当用户在FromDate添加日期,然后他在ToDate添加日期。 ToDate不应低于FromDate 。 还有一件事是。 在一行之后,我的日历控件将在add class单击时动态生成。 请参阅下面的html

   

以下是我尝试validation的datepicker代码,但它不起作用。

 function addVendorRow() { var numItems = $('.vendorName').length; if (numItems != 6) { var tr2 = $("#vendorlisttr" + (numItems - 1) + ""); var tr = "
" $(tr).insertAfter(tr2); $('#txtVendorName' + numItems).focus().autocomplete(autocompleteOptions); $('#spFromDate' + numItems).datepicker({ dateFormat: 'dd/mm/yy', numberOfMonths: 2, onSelect: function (selected) { var dt = new Date(selected); dt.setDate(dt.getDate() + 1); $('#spToDate' + numItems).datepicker("option", "minDate", dt); } }); $('#spToDate' + numItems).datepicker({ dateFormat: 'dd/mm/yy', numberOfMonths: 2, onSelect: function (selected) { var dt = new Date(selected); dt.setDate(dt.getDate() - 1); $("#txtFrom").datepicker("option", "maxDate", dt); } }); } else { jAlert(ValidationMessageConfig.MaxVendor, ValidationMessageConfig.Title); } }

请帮我validation。

更新

从这里得到了参考

您使用日期选择器的日期格式默认情况下不可解析为javascript(dd / mm / yyyy将返回无效日期,因为它不是有效的ISO格式)。 请参阅下面的代码片段,了解如何实现您的目标

 $(document).ready(function(){ setDatepickers(0) $(".add").click(function(){ addVendorRow() }) }) function setDatepickers(numItems){ $('#spFromDate' + numItems).datepicker({ dateFormat: 'dd/mm/yy', numberOfMonths: 2, onSelect: function (selected) { var parsedDate = selected.split('/') var dt = new Date(); dt.setDate(parsedDate[0]) dt.setMonth(parseInt(parsedDate[1])-1) dt.setYear(parsedDate[2]) dt.setDate(dt.getDate() + 1); var newMinDate = dt.getDate()+"/"+(dt.getMonth()+1)+"/"+dt.getFullYear(); $('#spToDate' + numItems).datepicker("option", "minDate", newMinDate); } }); $('#spToDate' + numItems).datepicker({ dateFormat: 'dd/mm/yy', numberOfMonths: 2, onSelect: function (selected) { var parsedDate = selected.split('/') var dt = new Date(); dt.setDate(parsedDate[0]) dt.setMonth(parseInt(parsedDate[1])-1) dt.setYear(parsedDate[2]) dt.setDate(dt.getDate() - 1); var newMaxDate = dt.getDate()+"/"+(dt.getMonth()+1)+"/"+dt.getFullYear(); $('#spFromDate' + numItems).datepicker("option", "maxDate", newMaxDate); } }); } function addVendorRow() { var numItems = $('.vendorName').length; if (numItems != 6) { var tr2 = $("#vendorlisttr" + (numItems - 1) + ""); var tr = "
" $(tr).insertAfter(tr2); //$('#txtVendorName' + numItems).focus().autocomplete(autocompleteOptions); setDatepickers(numItems) } else { jAlert(ValidationMessageConfig.MaxVendor, ValidationMessageConfig.Title); } }