2011-03-15 136 views
2

我使用日期範圍選擇器JavaScript庫從用戶如何使用日期範圍選擇器一起使用Ajax

    $('#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調用我更新了日期範圍的屏幕中,選擇日期的範圍。但是這個更改函數運行兩次,並且ajax返回舊的日期值。如果需要在日期範圍選擇器的更改功能上使用ajax功能。

如果有任何人找到正確使用onchange函數的解決方案,請親密接觸我。由於提前

回答

1

documentation你找到

的onChange:功能,回調 執行每當日期輸入 變化(可在範圍內發生兩次 選擇)。

我已經安裝了一個小演示http://jsfiddle.net/ByzYX/16/

所以的onChange似乎是您的解決方案錯誤的回調。我不確定你想要在屏幕上更新什麼,以及爲什麼要做Ajax請求,但是你可以嘗試一個if條件來執行你的ajax調用一次。

所以onOpen設置一個標誌爲true,執行ajax調用後將它設置爲false。在onChange檢查此標誌。

1

我就是這麼做的:

$('#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"); 
      } 
     }); 
    }); 

此函數類似於$("#date_range").change(function(){});,但它有一些參數了。

您可能希望將日期字符串更改爲您接收它的有效日期,以防您想要進行一些過濾。

我在http://www.daterangepicker.com/上找到了關於這個功能的信息,看看更多的例子! :)

相關問題