在jQuery Datatables中初始化搜索输入

bik*_*tle 10 javascript jquery datatables jquery-events

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

$('#example_filter label input[type=text]').val('Default Product')
Run Code Online (Sandbox Code Playgroud)

上面设置了值,但因为没有涉及按键,事件处理程序不会提取它.有没有一种方法可以链接到上面,就像输入键一样,或者我应该编写一个事件处理程序来查找字段中的更改.我是数据表和jquery新手的新手.谢谢.

bik*_*tle 21

所以正确的方法是使用oSearch参数.

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

$(document).ready( function() {
  $('#example').dataTable( {
    "oSearch": {"sSearch": "Initial search"}
  } );
} )
Run Code Online (Sandbox Code Playgroud)


gil*_*ly3 13

您可以使用以下方式手动触发事件.trigger():

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

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

  • 这与"keyup"一起工作!我有一些类似的代码,但由于某种原因它不起作用.谢谢! (7认同)

jos*_*123 11

现在正确的方法是:

var table = $( '#mytable' ).DataTable();
table.search( 'initial search value' ).draw();
Run Code Online (Sandbox Code Playgroud)


dev*_*ate 5

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

$(document).ready( function() {
  $('#example').dataTable( {
    "search": {"search": "Initial search"}
  });
});
Run Code Online (Sandbox Code Playgroud)