2010-11-15 3 views
1

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

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

вот код:

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

вот рабочий пример: http://jsfiddle.net/BU5PJ/2/

JQuery 1.4.4, 1.8.5 UI, + daterangepicker from filamentgroup.com

+0

Можете ли вы опубликовать пример кода. –

+0

Код указан по ссылке. – Cheeso

ответ

2

Взглядами документации, найденных здесь http://www.filamentgroup.com/lab/date_range_picker_using_jquery_ui_16_and_jquery_ui_css_framework/

onChange: function, callback that выполняет каждый раз, когда вводится дата ввода изменений (может произойти дважды в диапазоне ).

Когда я выбрал конкретную дату, у меня появилось только одно поле для предупреждения.

+0

попробуйте выбрать «сегодня» или «последние 7 дней» – Karem

+0

Возможно, в двух предупреждениях указаны даты до и после. – Cheeso

+0

«последние 7 дней» - это диапазон дат (поэтому с точки зрения этих документов вы ожидаете два предупреждения), он также рассматривает «сегодня» как диапазон дат. Сайт говорит, что это незавершенная работа, возможно, вы могли бы предложить улучшение сайта, потому что это похоже на ограничение плагина –

0

попробовать это

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

В моем случае, я использую 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); 
Смежные вопросы