2012-06-12 18 views
6

Estoy tratando de inicializar una tabla de datos con un valor de búsqueda predeterminado que el usuario puede reemplazar o refinar. Esto es con datos del lado del servidor. No he leído nada donde puedas hacer esto en la documentación de Datatables.Inicializar la entrada de búsqueda en jQuery Datatables

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

Lo anterior establece el valor pero debido a que no hay una pulsación de tecla implicada, el controlador de eventos no lo recoge. ¿Hay algún método que pueda encadenar a lo anterior que actúe como la tecla Intro, o debería escribir un controlador de eventos que busque cambios en el campo? Soy bastante nuevo en datatables y un jquery novato. Gracias.

+0

@ obras respuesta de gilly3, pero está haciendo dos llamadas al servidor utilizando este método en lugar de uno. ¿Hay alguna forma en Datatables para establecer un valor de búsqueda predeterminado? – bikedorkseattle

Respuesta

12

Usted puede disparar un evento manualmente con .trigger():

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

Dependiendo de su código, es posible que desee "keyup" lugar.

+7

¡Eso funcionó con "keyup"! Tenía un código similar pero no funciona por alguna razón. ¡Gracias! – bikedorkseattle

+0

He intentado esto con "keyup". ¡¡¡Trabajó!!! –

+0

'keyup' se trabajó para mí. 'keypress' no funciona –

11

La forma correcta es ahora:

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

Esto es excelente. – radbyx

+0

para cambiarlo fuera del proceso init, simplemente haga '$ ('# myTable'). DataTable(). Search ('string'). Draw();' – tmthyjames

+1

En realidad, esto no es lo mismo. Esto aplica una búsqueda DESPUÉS de que la tabla de datos esté inicializada. Esto significa que la tabla entra sin un término de búsqueda, y luego está redibujando la tabla con un nuevo término de búsqueda. Es mejor (en cuanto al rendimiento) usar el parámetro 'search' en la configuración init de la tabla. –

0

Puede cambiar la configuración predeterminada:

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

2

Las respuestas que se refieren a oSearch usan sintaxis heredada. As of DataTables 1.10+, la sintaxis correcta es:

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