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

时间:2011-04-22 01:56:34

标签: jquery jquery-ui-datepicker

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

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

2 个答案:

答案 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();
            }
        }
});