event ejemplo jquery jquery-ui autocomplete

ejemplo - Borrar campo de formulario después de seleccionar para jQuery UI Autocompletar



jquery autocomplete select event (5)

Estamos usando Autocompletar de JQuery UI y tengo problemas para borrar el cuadro de texto que contiene el término de búsqueda una vez que se completa la consulta. Aquí está nuestro código JQuery:

$(document).ready(function () { $("form#search input#term").autocomplete({ source: ''<%= Url.Action("Display", "Search") %>'', delay: 200, minLength: 3, parse: function (data) { var array = new Array(); for (var i = 0; i < data.length; i++) { array[array.length] = { data: data[i], value: data[i], result: data[i].link }; } return array; }, select: function (event, ui) { window.location.href = ui.item.value; $(this).val() = ""; return false; } }); });

Este código funciona bien en Firefox, pero IE 8 está lanzando una excepción y ofrece un diálogo que pregunta si quiero usar IE Script Debugger. Vi esta publicación de Desbordamiento de pila: Borrar el campo de formulario después de seleccionar para JQuery UI Autocompletar, que dice que la solución al problema es devolver falso desde la función de selección JQuery, pero eso no ayudó. ¿Alguien tiene sugerencias sobre cómo solucionar esto?


Esto funciona para mí:

jQuery(''.SELECTOR''). autocomplete({ // Code }).on( "autocompleteselect", function( event, ui ) { jQuery(this).val(''''); });


La única forma que encontré para solucionar este problema fue utilizar el dll JQuery 1.4.1 anterior junto con el nuevo dll JQuery UI, versión 1.8.11, creo que hay un dll JQuery después de la versión 1.4.1 que causa este problema. Si es así, tal vez una versión futura lo arreglará.


Usando Jquery 1.5.1 y JQuery-ui 1.8.10, lo siguiente funciona para mí:

select: function (event, ui) { event.preventDefault() // <=== window.location.href = ui.item.value; $(this).val(''''); }


esto funciona para mí ...

jQuery(''.SELECETOR''). autocomplete({ .... .... }).on( "autocompleteselect", function( event, ui ) { jQuery(this).val(''''); });


$(this).val('''');

en lugar de

$(this).val() = "";