Настройка автозаполнения jQuery на предложение только при нажатии enter

#html #jquery #autocomplete #jquery-autocomplete

#HTML #jquery #автозаполнение #jquery-автозаполнение

Вопрос:

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

Ответ №1:

Вы можете установить 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

Комментарии:

1. Я добавил это к инициализации: disabled: true а затем добавил это $('.selector').keyup(function(e){ if(e.keyCode == 13){ // can't remember exact syntax or keycode here $(this).autocomplete( "option", "disabled", false ); } }); , он отключает предложения, пока я не нажму enter yes, но затем он ожидает ввода другого символа, чтобы дать предложения, я хочу, чтобы он сразу показывал предложения, затем я снова отключу его, пока снова не нажму enter.

2. $( ".selector" ).autocomplete( "enable" ).autocomplete( "search" ) возможно, это будет help..it должен вызвать поиск .. и вам нужно будет снова отключить его в случае закрытия. проверьте URL-адрес, который опубликовал Томми

3. Да, отлично, именно так я и хочу, спасибо 🙂 в конце это выглядит так: $('.selector').keyup(function(e){ if(e.keyCode == 13){ $(this).autocomplete( "enable" ).autocomplete( "search" ); $(this).autocomplete( "disable" ); // Here we remove the class that causes the suggestions restore opacity. $('.ui-autocomplete').removeClass('ui-state-disabled'); $('.ui-autocomplete').css('cursor','pointer'); } });

Ответ №2:

Подводя итог, вот как это сработало, спасибо за Tommy и Jags сначала отключите автозаполнение при инициализации, добавив эту опцию: 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');
    }
});