初始化 jQuery 数据表中的搜索输入

Initialize search input in jQuery Datatables

本文关键字:搜索 输入 jQuery 数据表 初始化      更新时间:2023-09-26

我正在尝试使用默认搜索值初始化数据表,用户可以替换或优化该值。 这是针对服务器端数据。 我还没有在数据表文档中阅读任何可以执行此操作的内容。

$('#example_filter label input[type=text]').val('Default Product')

上面设置了值,但由于不涉及按键,事件处理程序不会选取它。 有没有一种方法可以链接到上面的方法,它的作用类似于 enter 键,或者我应该编写一个在字段中查找更改的事件处理程序。 我对数据表和jQuery新手很陌生。

因此,执行此操作的正确方法是使用 oSearch 参数。

https://datatables.net/docs/DataTables/1.9.0/DataTable.defaults.oSearch.html

$(document).ready( function() {
  $('#example').dataTable( {
    "oSearch": {"sSearch": "Initial search"}
  } );
} )
您可以使用

.trigger()手动触发事件:

$('#example_filter label input[type=text]')
    .val('Default Product')
    .trigger($.Event("keypress", { keyCode: 13 }));

根据您的代码,您可能需要改用"keyup"

正确的方法是现在:

var table = $( '#mytable' ).DataTable();
table.search( 'initial search value' ).draw();

提到oSearch的答案使用的是旧语法。 从DataTables 1.10+开始,正确的语法是:

$(document).ready( function() {
  $('#example').dataTable( {
    "search": {"search": "Initial search"}
  });
});

您可以更改默认设置:

var my_config = {
            oLanguage: {
                sSearch: ""
            },
            oSearch: {
                sSearch: "Default Search value"
            }
        };
$('#search').dataTable(my_config);

$('#example_filter label input[type=search]').val(i).trigger($.Event("keyup", { keyCode: 13 }));