web-dev-qa-db-fra.com

Effacer la zone de texte dans Jquery Autocomplete après la sélection

Je souhaite effacer la zone de texte avec Jquery Autocomplete une fois que l'utilisateur a effectué la sélection.

J'ai essayé de vider le champ en:

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

Mais cela ne fonctionne pas. J'utilise jquery-1.6.4 et jquery-ui-1.8.16.

Des idées?

23
user1163513

L'événement select se produit avant la mise à jour du champ. Vous devrez annuler l'événement pour éviter que le champ ne soit mis à jour après l'avoir effacé:

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

Mise à jour: As T.J. Comme indiqué ci-dessous, il est légèrement plus rapide de mettre à jour la propriété value DOM directement plutôt que de passer par val () :

select: function(event, ui) {
    this.value = "";
    return false;
}
49
Frédéric Hamidi

J'utilise jQuery UI version 1.8.23 et $(this).val(""); sur l'événement select n'a pas fonctionné pour moi, mais cela a fonctionné:

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

Essayer

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

Vous pouvez aussi essayer ceci:

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

qui cachera toute la liste filtrée autocomplete lors de la sélection.

0
InGeek