jQuery daterangepicker: выполняет предупреждение дважды? - PullRequest
0 голосов
/ 30 марта 2011

Я хочу, чтобы он предупреждал «ок», когда вы меняете / делаете дату. Но я получаю два предупреждения вместо одного?

Как я могу это исправить?

вот код:

$(document).ready(function(){
       $('#datePicking').daterangepicker({
           arrows:true,
           onChange: function(){                  
               alert('ok');
           }
       }); 
});

Я использую jquery 1.3.2 и пользовательский интерфейс 1.7.2

Ответы [ 3 ]

1 голос
/ 30 марта 2011

Похоже, что это известная проблема с плагином.

От Скотта (Филамент) в филаментная группа :

Я добавил функцию обратного вызова для Теперь вы можете изменить использовать. Имейте в виду, что это может не соответствовать ваши потребности именно потому, что это будет огонь на КАЖДОЕ изменение, которое происходит в вход. Сочетания клавиш в один клик будет фактически запускать 2 обратных вызова потому что этот плагин просто вызывает дата меняется на каждый указатель даты, один вовремя. После того, как этот плагин принят от jQuery UI, я уверен, что мы будем работать, что расставаться и иметь дальномер запуск событий как один виджет. Теперь, вам нужно настроить свою страницу с эта проблема в виду.

Обходным путем для этого может быть использование $('#datePicking').blur() вместо опции onChange плагина.

0 голосов
/ 06 июля 2017

В моем случае я использую daterangepicker с угловой. Моя цель - отслеживать любые изменения в модели, в которой хранится значение диапазона дат, и сохранять его для вызова AJAX позже. Я сталкиваюсь с одной и той же проблемой, когда она дважды попадает в событие, когда меняется дата, даже если это только «Сегодня»: Как только это объект со свойствами startDate и endDate, а в другой раз - строка.

Можно использовать как преимущество.

 $scope.$watch(
    'rangeOfDate',
    function (newValue) {
        // Due to a known bug of open source library daterangepicker, the event is hit twice 
        //upon change. Once it is an object, and once it is a string. So, use appropriately.
        var selectedDateRange = new Object();
        if (typeof (newValue) == 'object') {
            selectedDateRange.startDate = new Date(newValue.startDate).toLocaleDateString();
            selectedDateRange.endDate = new Date(newValue.endDate).toLocaleDateString();
            //Do as you wish with this custom object
        }
        else if (typeof (newValue) == 'string') {
            alert("string");
        }               
    },
    false);
0 голосов
/ 04 мая 2012

Лучше использовать onClose вместо onChange

 $(document).ready(function(){
    $('#datePicking').daterangepicker({
       arrows:true,
       onClose : function(){                  
           alert('ok');
       }
   }); 
});

попробуйте это может помочь

...