2012-06-12 33 views
6

Tôi đang cố gắng khởi tạo một Datatable với một giá trị tìm kiếm mặc định mà người dùng có thể thay thế hoặc tinh chỉnh. Điều này là với dữ liệu phía máy chủ. Tôi đã không đọc bất cứ điều gì mà bạn có thể làm điều này trong tài liệu Datatables.Khởi tạo đầu vào tìm kiếm trong jQuery Datatables

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

Ở trên đặt giá trị nhưng vì không có phím bấm nào liên quan đến trình xử lý sự kiện không nhận được. Có một phương pháp tôi có thể chuỗi lên trên mà sẽ hành động như phím nhập, hoặc tôi nên viết một xử lý sự kiện tìm kiếm những thay đổi trong lĩnh vực này. Tôi khá mới với datatables và một người mới jquery. Cảm ơn.

+0

@ gilly3's answer works, nhưng nó thực hiện hai cuộc gọi đến máy chủ bằng cách sử dụng phương thức này thay vì một. Có cách nào trong Datatables để thiết lập một giá trị tìm kiếm mặc định? – bikedorkseattle

Trả lời

12

Bạn có thể kích hoạt một sự kiện bằng tay với .trigger():

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

Tùy thuộc vào mã của bạn, bạn có thể muốn "keyup" để thay thế.

+7

Làm việc với "keyup"! Tôi đã có một số mã tương tự nhưng nó không hoạt động vì một lý do nào đó. Cảm ơn! – bikedorkseattle

+0

Tôi đã thử điều này bằng "keyup". Đã làm việc!!! –

+0

'keyup' đã hoạt động đối với tôi. 'keypress' không hoạt động –

11

Cách thích hợp bây giờ là:

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

Điều này thật tuyệt vời. – radbyx

+0

để thay đổi nó bên ngoài của quá trình init, chỉ cần làm '$ ('# myTable'). DataTable(). Tìm kiếm ('chuỗi'). Vẽ();' – tmthyjames

+1

Thực ra, điều này là không giống nhau. Điều này áp dụng một tìm kiếm SAU KHI datatable được khởi tạo. Điều này có nghĩa là các bảng không có cụm từ tìm kiếm và sau đó bạn vẽ lại bảng bằng cụm từ tìm kiếm mới. Tốt hơn (hiệu suất khôn ngoan) để sử dụng tham số 'tìm kiếm' trong các thiết lập init của bảng. –

0

Bạn có thể thay đổi cài đặt mặc định:

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

2

Các câu trả lời đề cập đến oSearch đang sử dụng cú pháp cũ. As of DataTables 1.10+, cú pháp chính xác là:

$(document).ready(function() { 
    $('#example').dataTable({ 
    "search": {"search": "Initial search"} 
    }); 
}); 
Các vấn đề liên quan