Настройка автозаполнения JQuery для предложения только при нажатии Enter - PullRequest
0 голосов
/ 13 октября 2011

Я пытаюсь настроить автозаполнение, чтобы показывать подсказки только при нажатии кнопки ввода, а не при наборе текста. Как это возможно? Я думаю, что было бы легко редактировать код в самом файле JQuery, но я пытаюсь избежать этого, есть ли способ изменить функции или так? На этом этапе мне нужно сделать Ajax-вызов, чтобы получить данные, которые будут использоваться в качестве «источника» поля автокомпиляции, поэтому мне нужно будет изменить источник в соответствии с ответом.

Ответы [ 2 ]

1 голос
/ 13 октября 2011

Вы можете установить disabled = true, когда назначаете плагин

$( ".selector" ).autocomplete({ disabled: true });

, а затем включаете его при нажатии клавиш. Я полагаю,

$( ".selector" ).keypress(function(e){
 if(e.keyCode == 13){ // can't remember exact syntax or keycode here
   $( ".selector" ).autocomplete( "enable" );
 }
});

дополнительная информация доступна на вкладке параметров и методовстраница справки по пользовательскому интерфейсу http://jqueryui.com/demos/autocomplete/#method-option

0 голосов
/ 14 октября 2011

Подводя итог, вот как это работает, спасибо за Томми и Джагса сначала отключите автокомпиляцию при инициализации, добавив эту опцию: disabled: true
Затем добавьте этот слушатель:

$('.selector').keyup(function(e){
    if(e.keyCode == 13){ 
        $(this).autocomplete( "enable" ).autocomplete( "search" );
        $(this).autocomplete( "disable" );  
        $('.ui-autocomplete').removeClass('ui-state-disabled');
        $('.ui-autocomplete').css('cursor','pointer');
    }
});
...