автозаполнение текстового поля jquery - разрешить отправку только в опциях автозаполнения - PullRequest
1 голос
/ 11 октября 2011

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

 $(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) { }
        });

Ответы [ 3 ]

2 голосов
/ 11 октября 2011

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

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

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

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

0 голосов
/ 23 ноября 2013

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

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

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

0 голосов
/ 04 июля 2012

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

пример:

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