JQuery UI Autocomplete Выберите первый элемент, но не заполняйте ввод - PullRequest
1 голос
/ 31 мая 2011

Я хочу выбрать первый элемент, но не хочу заполнять его вводом. Поэтому, если я нажимаю клавишу ввода, первое значение выбирается, но никогда не заполняется автоматически, пока пользователь не нажмет клавишу ввода или не щелкнет в другом месте экрана, что приведет к закрытию списка.

Я посмотрел на selectFirst и autoFocus, но они не совсем то, что я искал. Не уверен, что то, о чем я прошу, возможно, но мне кажется, что это так.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 31 мая 2011

Во-первых, selectFirst и autoFocus не являются параметрами автозаполнения jQueryUI . Они взяты из плагина, который в конечном итоге был принят в jQueryUI, поэтому найденная документация здесь устарела.

Мне не совсем ясно, что вы пытаетесь выполнить, но, похоже, вы просто не хотите, чтобы элемент заполнял элемент input, когда вы фокусировались на нем в раскрывающемся меню. Это действительно возможно:

$("#autocomplete").autocomplete({
    source: [...],
    focus: function() {
        return false;
    }
}); 

возврат false из обработчика событий focus не позволит сфокусированному элементу в меню заполнить раскрывающийся список.

Обратите внимание, что нажатие в другом месте на странице не заполнит элемент input. Это связано с тем, что когда вы убираете мышь из меню, выбранный вами элемент теряет фокус. Это кажется мне естественным поведением, но, вероятно, есть способ сделать это тоже.

Вот рабочий пример: http://jsfiddle.net/andrewwhitaker/RyTuV/

0 голосов
/ 20 июля 2011

Вы можете использовать обработчик событий focus и опцию autoFocus для заполнения скрытого ввода.Затем, когда меню автозаполнения закроется, используйте обработчик событий close, чтобы заполнить любое поле, которое вы хотите, используя скрытый ввод.

...