我正在使用日期范围选择器javascript库从用户选择日期范围
$('#date_range').daterangepicker({
arrows:true,
dateFormat: 'd-M-yy',
rangeSplitter: 'to',
datepickerOptions: {
changeMonth: true,
changeYear: true,
minDate: new Date("01/01/2011") //Account created date
},
closeOnSelect: true,
onChange: function(){
//ajax call goes here
}
});
在我的ajax通话中,我正在使用日期范围更新屏幕。但是这个on change函数运行两次,ajax返回旧的日期值。如果需要使用ajax功能和日期范围选择器的更改功能。
如果有人找到使用onchange功能的解决方案,请及时更正,请与我联系。在此先感谢
答案 0 :(得分:1)
阅读您找到的documentation
onChange:功能,回调即 每当输入日期时执行 变化(范围可能发生两次 选择)。
我已经设置了一个小型演示http://jsfiddle.net/ByzYX/16/
所以onChange似乎是你的解决方案的错误回调。我不确定你想在屏幕上更新什么以及你为什么要执行ajax请求但是你可以尝试使用if条件来执行一次ajax调用。
因此onOpen
将标记设置为true
,执行ajax调用后将其设置为false
。在onChange
中查看此标记。
答案 1 :(得分:1)
我是这样做的:
myArray.Distinct().Count() == myArray.Length
此功能与$('#date_range').daterangepicker({
"startDate": "01/01/2016",
"endDate": "07/27/2016"
}, function(start, end, label) {
$.ajax({
url:"/your_url",
method: "GET", // or POST
dataType: "json",
data: {from: start.format('YYYY-MM-DD'), to: end.format('YYYY-MM-DD')},
success:function(result) {
console.log("sent back -> do whatever you want now");
}
});
});
类似,但它也有一些参数。
您可能希望将日期字符串更改为收到日期字符串的有效日期,以防您想要进行一些过滤。
我在http://www.daterangepicker.com/找到了关于此功能的内容,请查看更多示例! :)