Как выполнить поиск по первой букве в отдельном столбце при поиске данных - PullRequest
0 голосов
/ 20 февраля 2020

Я работаю над веб-приложением с данными. Я сделал глобальную исследовательскую панель и отдельную исследовательскую панель, как в этом примере: https://datatables.net/examples/api/multi_filter.html Теперь я хочу начать исследование с первой буквы только в столбцах отдельных лиц. Я пытался сделать это с помощью глобального исследования, и оно работало нормально, благодаря этому:

$(document).ready(function() {
   var table=$('#example').DataTable( {
       responsive: true
   } );
    $('.dataTables_filter input').on( 'keyup', function (e) {
      var regExSearch = '\\b' + this.value;
    table.search(regExSearch, true, false).draw();
   });
} );

Но это не то, чего я хочу, и я запрограммировал свое индивидуальное исследование так:

table.columns(':gt(1)').every( function () {
        var that = this;

        $( 'input', this.footer() ).on( 'keyup change clear', function () {
            if ( that.search() !== this.value ) {
                that
                    .search(this.value )
                    .draw();
            }
        } );
    } );

Я пытался использовать ту же логику c, что и глобальные исследования, при добавлении .search('\\b' +this.value ), но когда я пытаюсь что-то искать, ничего не возвращается.

Может быть, я что-то делаю не так, кто-нибудь знает, как это сделать что?

1 Ответ

0 голосов
/ 20 февраля 2020

Хорошо, я был так близко. Единственное, что мне нужно было сделать, это:

table.columns(':gt(1)').every( function () {
        var that = this;

        $( 'input', this.footer() ).on( 'keyup change clear', function () {
            if ( that.search() !== this.value ) {
                that
                    .search('\^'+this.value, true, false ) // regex=true, smart=false
                    .draw();
            }
        } );
    } );

И это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...