jQuery daterangepicker:执行两次警报?

时间:2011-03-30 03:02:57

标签: jquery daterangepicker

我希望在您更改/约会时提醒“确定”。但我得到两个警报而不是一个?

我该如何解决这个问题?

这是代码:

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

我正在使用jquery 1.3.2和UI 1.7.2

3 个答案:

答案 0 :(得分:1)

看来这是插件的已知问题。

来自filamentgroup的Scott(Filament):

  

我添加了一个回调函数   onChange现在你可以   使用。请记住,它可能不合适   你的需求究竟是因为它会   火上发生的每一次变化   输入。一键式范围快捷方式   实际上会触发2次更改回调   因为这个插件只是触发   每个日期选择器上的日期更改,一个   一次。一旦这个插件被采用   通过jQuery UI,我相信我们会这样做   部分出局,并有范围选择   将事件作为一个小部件触发目前,   你需要设置你的页面   记住这个问题。

解决方法可能是使用$('#datePicking').blur()而不是插件的onChange选项。

答案 1 :(得分:0)

最好使用onClose而不是onChange

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

试试这可能会有所帮助

答案 2 :(得分: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);