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

leo*_*ora 6 jquery jquery-ui-datepicker

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

$('#Milestone').datepicker({
    dateFormat: 'dd M yy',
    onSelect: calcUpdate
});
Run Code Online (Sandbox Code Playgroud)

Rez*_*mun 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...
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

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

  • 很好的答案 - 应该这样标记 (3认同)

Cha*_*ndu 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();
            }
        }
});
Run Code Online (Sandbox Code Playgroud)