Clear text box in Jquery Autocomplete after select

2020-08-09 05:27发布

问题:

I want to clear the textbox having Jquery Autocomplete once the user has made the selection.

I tried to clear the field by :

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

But this is not working.I am using jquery-1.6.4 and jquery-ui-1.8.16.

Any Ideas?

回答1:

The select event occurs before the field is updated. You will have to cancel the event to avoid the field being updated after you have cleared it:

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

Update: As T.J. pointed out below, it's slightly faster to update the value DOM property directly instead of going through val():

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


回答2:

I'm using jQuery UI version 1.8.23 and $(this).val(""); on select event hasn't worked for me, but this did:

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


回答3:

Try

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


回答4:

You may also try this:

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

which will hide all the autocomplete filtered list upon selecting it.