2012-06-12 30 views
6

Ich versuche, eine Datatable mit einem Standardsuchwert zu initialisieren, den der Benutzer entweder ersetzen oder verfeinern kann. Dies ist mit serverseitigen Daten. Ich habe nichts gelesen, wo Sie dies in der Datatables-Dokumentation tun können.Initialisiere Sucheingabe in jQuery Datatables

Das obige setzt den Wert, aber da kein Tastendruck involviert ist, übernimmt der Event-Handler es nicht. Gibt es eine Methode, die ich auf die obige Kette ketten kann, die wie die Eingabetaste fungieren würde, oder sollte ich einen Ereignishandler schreiben, der nach Änderungen in dem Feld sucht. Ich bin ziemlich neu in Datatables und ein Jquery Novize. Vielen Dank.

+0

@ Antwort Werke gilly3, aber es macht zwei Anrufe auf dem Server statt einer mit dieser Methode. Gibt es in Datatables eine Möglichkeit, einen Standardsuchwert festzulegen? – bikedorkseattle

Antwort

12

Sie können ein Ereignis manuell mit .trigger() auslösen:

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

Code Je nach, Sie "keyup" stattdessen möchten.

+7

Das hat mit "keyup" funktioniert! Ich hatte einen ähnlichen Code, aber aus irgendeinem Grund funktioniert es nicht. Vielen Dank! – bikedorkseattle

+0

Ich habe das mit "keyup" versucht. Hat funktioniert!!! –

+0

'keyup' ist für mich gearbeitet. 'keypress' funktioniert nicht –

11

Der richtige Weg ist nun:

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

Das ist ausgezeichnet. – radbyx

+0

Um es außerhalb des Init-Prozesses zu ändern, tun Sie einfach '$ ('# myTable'). DataTable(). Search ('string'). Draw();' – tmthyjames

+1

Eigentlich ist das nicht das Gleiche. Dies bewirkt eine Suche nach der Initialisierung der Datentabelle. Dies bedeutet, dass die Tabelle ohne Suchbegriff beginnt und Sie dann die Tabelle mit einem neuen Suchbegriff neu zeichnen. Es ist besser (in Bezug auf die Leistung), den Parameter "search" in den init-Einstellungen der Tabelle zu verwenden. –

0

Sie können die Standardeinstellungen ändern:

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

2

Die Antworten, die sich auf oSearch beziehen, verwenden die Legacy-Syntax. As of DataTables 1.10+, die korrekte Syntax ist:

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