我在jquery ui datepicker的 onSelect 事件上有代码,我现在只想在日期更改值时运行我的函数(所以如果用户选择已经有的日期在文本框中,我不想运行此代码,因为它将是一个冗余计算)。这是我现有的代码。
$('#Milestone').datepicker({
dateFormat: 'dd M yy',
onSelect: calcUpdate
});
答案 0 :(得分:15)
根据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个参数,这些参数在这里使用; 您可以调试/控制第二个参数的值以了解更多信息。
答案 1 :(得分:10)
您可以使用数据存储以前存储的值,并将当前值与之比较。
试试这个(把这些陈述放在你的文件准备活动中):
$('#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();
}
}
});