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

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

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

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


person Martin    schedule 21.08.2013    source источник


Ответы (2)


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

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

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

Код:

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

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

person Irvin Dominin    schedule 21.08.2013

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

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

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

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