在jquery ui datepicker中,OnSelect()事件无论如何都要获得之前选择的日期

我有jquery ui datepicker的onSelect事件的代码,我现在只想运行我的函数,如果日期已更改值(所以如果用户选择已经在文本框中的日期,我不想运行这段代码因为它将是一个冗余计算)。 这是我现有的代码。

$('#Milestone').datepicker({ dateFormat: 'dd M yy', onSelect: calcUpdate }); 

您可以使用数据存储以前存储的值,并将当前值与之进行比较。

试试这个(把这些陈述放在你的文件准备活动中):

 $('#Milestone').data("prev", $(this).val()); $('#Milestone').datepicker({ dateFormat: 'dd M yy', onSelect: function(dateText){ var prevDate = $(this).data("prev") var curDate = dateText; if(prevDate == curDate){ $(this).data("prev", curDate) calcUpdate(); } } }); 

根据http://api.jqueryui.com/datepicker/#option-onSelect ,你应该试试这个:

 $('#Milestone').datepicker({ dateFormat: 'dd M yy', onSelect: function(curDate, instance){ if( curDate != instance.lastVal ){ //so, the date is changed; //Do your works here... } } }); 

onSelect函数接收2个参数,这些参数在这里使用; 您可以调试/控制第二个参数的值以了解更多信息。