Автозаполнение jQuery обнаруживает пустой ввод

#javascript #jquery

#javascript #jquery

Вопрос:

Я использую автозаполнение jQuery и сталкиваюсь с проблемой, когда он не обнаруживает, что он пуст.

 $("#autocomplete").on("autocompleteopen", function() {
    if (!$(this).val()) {
      console.log("I am empty");
    } else {
      console.log("I am not empty");
    }
 

Ввод начинается как пустой, и если я набираю букву t , которую я вижу I am not empty напечатанной на консоли. Если я удаляю t из ввода, я ничего не вижу, напечатанного на консоли.

test Если я набираю и возвращаю последнее, что я вижу, я не пустой. t Так что это не проблема с прослушивателем autocompleteopen событий. Есть идеи, что может происходить?

Комментарии:

1. Событие autocompleteopen , скорее всего, не запускается при t удалении. Рассмотрите возможность использования события клавиатуры?

Ответ №1:

Для всех вас, будущих пользователей Google, проблема была в моем объекте автозаполнения. Чтобы определить нулевую длину, вы должны установить minLength атрибут равным нулю. Смотрите пример ниже.

 $("#autocomplete").autocomplete({
    minLength: 0,
    ...
})
 

https://api.jqueryui.com/autocomplete/#option-minLength