Как отображать предложения автозаполнения только после нажатия Enter? - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу показывать предложения автозаполнения только после того, как пользователь нажмет клавишу Enter.

После прочтения api docs я подозреваю, что мне нужно перезаписать событие search или change, однако мне неясно, как это сделать. В частности, событие search:

Срабатывает до выполнения поиска, после того, как minLength и задержка выполнены. Если отменено, то ни один запрос не будет запущен, и никаких элементов предлагается.

То, что я хотел бы сделать, это отменить событие, если не нажата кнопка ввода. Как мне сделать это в функции инициализации ниже?

$(".selector").on("autocompletechange", function(event, ui) {});

Или есть другой лучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Вам нужно изменить события jquery lib, чтобы перехватить событие клавиши ввода и выполнить ваши функции. В этой функции только клавиша ввода откроет выпадающий список, а остальные события будут отключены.

$(".selector").autocomplete({
                keypress: function (event, ui) {
                    if (event.which == 13) {
                        console.log("Key Pressed");
                    }
                    else
                        return false;
                }
            });
0 голосов
/ 14 ноября 2018

Мое предложение будет разрешать вызывать событие onchange каждый раз, но вы специально выбираете детали при нажатии клавиши Enter. Вы можете обнаружить нажатие клавиши из события. Ниже приведен образец -

function(event, ui) {
    if(event.keyCode == 13){
        //write code to populate the Autocomplete
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...