0

我希望它在您更改/约会时提醒“好的”。但是我收到两个警报而不是一个?

我怎样才能解决这个问题?

这是代码:

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

我正在使用 jquery 1.3.2 和 UI 1.7.2

4

3 回答 3

1

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

来自filamentgroup的 Scott(Filament):

我现在为 onChange 添加了一个回调函数,您可以使用它。请记住,它可能不完全符合您的需求,因为它会在输入中发生的每一次更改时触发。一键范围快捷方式实际上会触发 2 个更改回调,因为此插件只会触发每个日期选择器上的日期更改,一次一个。一旦这个插件被 jQuery UI 采用,我相信我们会解决这个问题并将 rangepicker 触发事件作为一个小部件。现在,您需要在设置页面时考虑到这个问题。

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

于 2011-03-30T04:00:46.853 回答
0

最好使用 onClose 而不是 onChange

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

试试这个可能会有所帮助

于 2012-05-04T04:40:22.937 回答
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);
于 2017-07-06T16:35:33.313 回答