2012-06-12 33 views
6

我試圖用默認搜索值初始化Datatable,用戶可以替換或優化默認搜索值。這是與服務器端數據。我沒有閱讀任何可以在Datatables文檔中執行此操作的地方。在jQuery Datatables中初始化搜索輸入

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

上面設置的值,但因爲沒有按鍵涉及事件處理程序不拾起它。有沒有一種方法可以鏈接到上面的行爲就像回車鍵,或者我應該寫一個事件處理程序,查找字段中的更改。我對數據表和新手都很陌生。謝謝。

+0

@ gilly3的答案的作品,但它的使用這種方法,而不是一兩次呼叫服務器。數據表中是否有任何方法設置默認搜索值? – bikedorkseattle

回答

12

你可以用手動.trigger()觸發事件:

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

根據您的代碼,你可能想"keyup"代替。

+7

這與「keyup」一起工作!我有一些類似的代碼,但由於某種原因它不工作。謝謝! – bikedorkseattle

+0

我試過這個「鍵控」。工作! –

+0

'keyup'適合我。 'keypress'不起作用 –

11

正確的方法是現在:

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

這很好。 – radbyx

+0

在init進程之外改變它,只要執行'$('#myTable').DataTable().search('string').draw();' – tmthyjames

+1

實際上,這是不一樣的。這在數據表被初始化之後應用搜索。這意味着表格不含搜索詞,然後您使用新的搜索詞重新繪製表格。在表的init設置中使用'search'參數會更好(性能明智)。 –

0

您可以更改默認設置:

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

2

參考oSearch的答案正在使用傳統語法。 As of DataTables 1.10+,正確的語法是:

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