в jquery ui datepicker, в событии OnSelect () есть в любом случае, чтобы получить предыдущую выбранную дату - PullRequest
6 голосов
/ 22 апреля 2011

У меня есть код для события onSelect для jquery ui datepicker , и теперь я хочу запускать свою функцию только в том случае, если дата изменила значения (например, если пользователь выбирает дату это уже было в текстовом поле, я не хочу запускать этот код, так как это будет избыточный расчет). Вот мой существующий код.

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

Ответы [ 2 ]

15 голосов
/ 26 декабря 2013

Согласно 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 параметра, которые здесь используются;Вы можете отлаживать / поддерживать значения 2-го параметра, чтобы узнать больше об этом.

10 голосов
/ 22 апреля 2011

Вы можете использовать данные, чтобы сохранить ранее сохраненное значение и сравнить текущее значение с ним.

Попробуйте это (поместите эти утверждения в событие готовности вашего документа):

$('#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();
            }
        }
});
...