Datatables DatePicker / фильтр диапазона дат не работает - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь внедрить фильтр дат-диапазона / указателя даты в мою таблицу.Мой код не работает, и я не могу понять, почему.Единственная точка останова, которая попадает при отладке:

onSelect: function () {
        lTable.draw();
    },

Никакие другие точки останова не попадают.Когда я выбираю дату, ничего не происходит.Я искал в интернете несколько недель, пытаясь выяснить проблему.

$.fn.dataTable.ext.search.push(
                    function (settings, data, dataIndex) {
                        var from = $('#from').datepicker("getDate");
                        var to = $('#to').datepicker("getDate");

                        //data being searched
                        var startDate = new Date(data[2]);

                        //if true show row/ if not, don't
                        if (from == null && to == null) { return true; }
                        if (from == null && startDate <= to) { return true; }
                        if (to == null && startDate >= from) { return true; }
                        if (startDate <= to && startDate >= from) { return true; }
                        return false;
                    }
                );    

                //DATE RANGE FILTER
                var lTable = $("WTM_LOG").DataTable();
                $("#to").datepicker({
                    onSelect: function () {
                        lTable.draw();
                    },
                    changeMonth: true,
                    changeYear: true,
                    dateFormat: "dd/mm/yy"
                });

                $("#from").datepicker({
                    onSelect: function () {
                        lTable.draw();
                    },
                    changeMonth: true,
                    changeYear: true,
                    dateFormat: "dd/mm/yy"
                });

                // Event listener to the two range filtering inputs to redraw on input
                $('#from, #to').change(function () {
                    lTable.draw();
                });

1 Ответ

0 голосов
/ 27 декабря 2018

Уберите этот блок:

onSelect: function() { lTable.draw(); },

И измените свой слушатель на это.Попробуйте положить его в свой $(document).ready():

$('#from, #to').on('keyup change', function () { lTable .order([2, 'asc']) // asc or desc .draw(); });

...