如何使用日期范围选择器和ajax

时间:2011-03-15 06:08:14

标签: jquery jquery-ui datepicker daterangepicker

我正在使用日期范围选择器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功能的解决方案,请及时更正,请与我联系。在此先感谢

2 个答案:

答案 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/找到了关于此功能的内容,请查看更多示例! :)