Добавьте указатель даты для фильтрации данных в Datatable - PullRequest
2 голосов
/ 05 октября 2019

Я хотел бы добавить средство выбора даты для фильтрации данных в Datatable. Я видел много примеров, когда указатель даты используется с диапазоном дат, но мне бы хотелось, чтобы в Datatable отображались только те данные, которые содержат дату, выбранную в указателе даты.

Я пытался сделать это здесь:https://jsfiddle.net/c9q5b0k3/3/

Код JavaScript, который я написал:

$(document).ready(function() {
  $('.datepicker').datepicker({
    format: "yyyy/mm/dd"
  });

});


$.fn.dataTable.ext.search.push(
  function(settings, data, dataIndex) {
    var dateSelected = $('#date').val();
    var date = data[4];
    if (dateSelected === "") {
      return true;
    }
    if (date === dateSelected) {
      return true;
    }
    return false;
  }
);

$(document).ready(function() {
  var table = $('#sspTable').DataTable({
    responsive: true
  });
  $('#date').keyup(function() {
    table.draw();
  });
    });

Но проблема в том, что это работает, только если я выбираю дату в указателе даты, а затем нажимаю стрелки наDatatables (те, которые упорядочивают данные) или если я нажимаю несколько раз Enter.

В чем проблема? Можно ли иначе добавить средство выбора даты в строку поиска таблицы данных?

Заранее спасибо!

1 Ответ

1 голос
/ 05 октября 2019

Вам нужно позвонить table.draw(), когда в указателе даты выбрано значение. Чтобы сделать это, вы можете изменить существующий обработчик событий keyup, вы также должны включить change, например:

$('#date').on('keyup change', function() {
  table.draw();
});

Обновленная скрипта

...