Подтвердить что ты не робот

Очистить текстовое поле в автозаполнении JQuery после выбора

Я хочу очистить текстовое поле с автозагрузкой Jquery после того, как пользователь сделал выбор.

Я попытался очистить поле:

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

Но это не работает. Я использую jquery-1.6.4 и jquery-ui-1.8.16.

Любые идеи?

4b9b3361

Ответ 1

Событие select происходит до обновления поля. Вам нужно будет отменить это событие, чтобы избежать обновления поля после его очистки:

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

Обновление: как T.J. ниже, он немного быстрее обновляет свойство value DOM напрямую, а не проходит через val():

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

Ответ 2

Try

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

Ответ 3

Я использую jQuery UI версии 1.8.23 и $(this).val(""); on select для меня не срабатывало событие, но это:

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

Ответ 4

Вы также можете попробовать следующее:

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

который скроет весь отфильтрованный список автозаполнения при его выборе.