jquery-ui autocomplete - Borrar campo de formulario después de seleccionar para jQuery UI Autocompletar





select ejemplo (5)


$(this).val(''); 

en lugar de

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

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('.SELECETOR'). autocomplete({
   ....
   ....
}).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('');                
            }



Firefox 30 ignora autocomplete="off" para las contraseñas, optando por preguntar al usuario si la contraseña debe almacenarse en el cliente. Tenga en cuenta el siguiente commentary del 5 de mayo de 2014:

  • El administrador de contraseñas siempre pregunta si desea guardar una contraseña. Las contraseñas no se guardan sin el permiso del usuario.
  • Somos el tercer navegador en implementar este cambio, después de IE y Chrome.

De acuerdo con la documentación del desarrollador de Mozilla, el atributo de elemento de formulario autocomplete evita que los datos de formulario se almacenen en caché en navegadores antiguos.

<input type="text" name="foo" autocomplete="off" />




jquery jquery-ui autocomplete