2012-07-23 17 views
20

Quiero borrar el cuadro de texto que tiene Jquery Autocompletar una vez que el usuario ha hecho la selección.Borrar cuadro de texto en Jquery Autocompletar después de la selección

Me trataron de despejar el campo por:

select: function(event, ui) { 
    $(this).val(''); 
} 

Pero esto no es working.I estoy usando jQuery y jQuery-1.6.4-ui-1.8.16.

¿Alguna idea?

+0

Noté su código dice "seleccionar". Solo quiero aclarar que es un cuadro de texto y no un cuadro de selección antes de ofrecer una solución. – CoreyRS

+1

@CoreyRS: 'select' es el nombre de la opción que pasa a' autocompletar' para enganchar el evento cuando el usuario selecciona una de las opciones de autocompletar. –

Respuesta

45

El evento select ocurre antes de que se actualice el campo. Usted tendrá que cancelar el evento para evitar el campo se actualiza después de que haya pasado que:

select: function(event, ui) { 
    $(this).val(""); 
    return false; 
} 

Actualización: Como T. J. señaló a continuación, que es un poco más rápido para actualizar la propiedad value DOM directamente en lugar de pasar por val():

select: function(event, ui) { 
    this.value = ""; 
    return false; 
} 
+6

+1 O simplemente 'this.value =" ";', como en [sus ejemplos] (http://jqueryui.com/demos/autocomplete/#multiple-remote). –

1

Trate

select: function(event, ui) { 
input.value=''; 
} 
0

También puede probar esto:

$("#your_autocomplete_sub_listview_id").children().addClass("ui-screen-hidden"); 

que ocultar toda la lista filtrada autocompletar al seleccionar eso.

2

estoy usando jQuery UI versión 8.1.23 y $(this).val(""); en select evento no ha funcionado para mí, pero esto hizo:

$("selector").autocomplete({ 
    // ... 
    close: function(el) { 
     el.target.value = ''; 
    } 
}); 
Cuestiones relacionadas