Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Размытие триггера автозаполнения jQuery UI

Автор вопроса: MartinОтветов: 2

У меня есть текстовое поле с автозаполнением jQuery UI. Я хочу, чтобы пользователь что-то напечатал, имел автозаполнение для отображения параметров, а затем, когда пользователь щелкает параметр, я хочу, чтобы он запускал размытие / фокусировку, чтобы указать, что пользователь выбрал значение.

К сожалению, кажется, что пользовательский интерфейс jQuery сохраняет фокус на текстовом поле, когда была нажата опция автозаполнения.

Любые идеи о том, как это исправить?

blurjqueryautocompletejquery-uijquery-ui-autocomplete

Ответы

Ответ 1 · рейтинг 3 · Irvin Dominin

Вы можете использовать событие close поля автозаполнения.

Краткая справка:

Срабатывает, когда меню скрыто. Не каждое закрытое событие будет сопровождаться событием изменения.

Код:

$("#tags").autocomplete({
    source: availableTags,
    close: function(){
        this.blur();
    }
});

Демо: http://jsfiddle.net/IrvinDominin/T2WRc/

Ответ 2 · Dave_K

Ответ Ирвина помог мне понять, как это исправить, но использование функции закрытия может иметь плохой побочный эффект. Если автозаполнение перестает показывать результаты после начала отображения результатов, запускается функция закрытия, поэтому в этом случае размытие также будет срабатывать до того, как что-либо будет выбрано.

Вместо этого просто добавьте this.blur (); в функцию выбора после выбора того, что вы возвращаете (или просто добавьте его, если вы используете выбор по умолчанию).

Используя его пример кода:

$("#tags").autocomplete({
    source: availableTags,
    select: function(){
        this.blur();
    }
});

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы