Как использовать инструмент выбора диапазона дат вместе с ajax - PullRequest
2 голосов
/ 15 марта 2011

Я использую библиотеку 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 я обновляю экран с диапазоном дат. но эта функция при изменении запускается два раза, и ajax возвращает старое значение даты. Если необходимо использовать функцию ajax с функцией изменения выбора диапазона дат.

Если кто-то найдет решение для использования функции onchange сразу с правильной датой и датой, сообщите мне, пожалуйста. Заранее спасибо

Ответы [ 2 ]

1 голос
/ 27 июля 2016

Я сделал это следующим образом:

$('#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/,, посмотрите другие примеры!:)

1 голос
/ 28 марта 2011

Чтение документации вы найдете

onChange: функция обратного вызова, которая выполняется всякий раз, когда ввод даты изменяется (может происходить дважды при выборе диапазона).

Я настроил небольшую демонстрацию http://jsfiddle.net/ByzYX/16/

Так что onChange, похоже, является неправильным обратным вызовом для вашего решения.Я не совсем уверен, что вы хотите обновить на экране и почему вы делаете ajax-запросы, но вы можете попробовать условие if, чтобы выполнить ваш ajax-вызов только один раз.

Итак, onOpen установите флаг trueи после выполнения вызова ajax установите его на falseonChange отметьте этот флаг.

...