автозаполнение текстового поля jquery — разрешить отправку только в параметрах автозаполнения

#jquery-ui #jquery #jquery-autocomplete

#jquery-пользовательский интерфейс #jquery #jquery-автозаполнение

Вопрос:

Я ищу помощь в своем коде, который допускает автозаполнение только в пределах указанного массива данных. Таким образом, разрешается вводить только данные в массиве автозаполнения. Не уверен, где это сделать.Вот мой код. Кто-нибудь может предложить??

  $(document).ready(function () {
                         var data = ["ActionScript","AppleScript","Asp","BASIC","C","C  ","iran","Scheme"];
                        $("#autocomplete").autocomplete(data);
                        });
    $('input#autocomplete').result(function (event, data, formatted) {
                        $("#result").html(!data ? "No match found!" : "Selected: "   formatted);
                    }).keyup(function () {
                       $(this).search();
                       $(this).css("background-color","#D6D6FF");                   
                    });

             } catch (e) { }
        });
  

Ответ №1:

Попробуйте mustMatch вариант (документы):

 $("#autocomplete").autocomplete(data, { mustMatch: true });
  

Пример: http: //jsfiddle.net/prCsm/

В качестве примечания, этот плагин устарел в пользу версии jQueryUI.

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

1. Спасибо за ответ, но если я выполнил mustMatch:true, то в этом случае он также удалит действительные данные. например, если я написал Asp01, то он полностью удаляет текстовое поле. смотрите следующую ссылку и пример № 3 mabp.kiev.ua/content/source/autocomplete/autocomplete.html , я хочу такого поведения, которое не позволяло бы записывать что-либо после действительных данных. Любое предложение будет заметно: спасибо

Ответ №2:

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

пример:

 $("#autocomplete2").autocomplete({
  url:'search.php?type=xml',
  minchar:2,
  delay:1000, // in milliseconds
  onSelect:function(){
    $("#autocomplete2").attr('disabled', 'disabled');
  },
  type:'xml'
});
  

Ответ №3:

Я делаю следующее:-

  1. Установите флажок false при вводе поля (onfocus)
  2. Установите флаг в значение true в событии выбора автозаполнения
  3. Проверьте флажок в поле при событии размытия

Если это правда, выбор хороший, в противном случае он плохой, и вы можете вернуть фокус в поле ввода.