我希望在您更改/约会时提醒“确定”。但我得到两个警报而不是一个?
我该如何解决这个问题?
这是代码:
$(document).ready(function(){
$('#datePicking').daterangepicker({
arrows:true,
onChange: function(){
alert('ok');
}
});
});
我正在使用jquery 1.3.2和UI 1.7.2
答案 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);