Как использовать JQuery Autocomplete для нескольких слов
У меня есть поле автозаполнения, и мне просто интересно, как я могу его использовать
для нескольких слов? Когда я печатаю первое слово, оно работает отлично, но
когда я пробелю и набираю второе слово, он отправляет два слова назад
на сервер, и, конечно, результаты неверны!
например. когда я набираю два слова,
'Java javascript'
первое слово "Java", автозаполнение работает хорошо, вытащите список.
но когда я пробелю и набираю javascript, autocomplete отправляет 'Java
+ javascript 'в мою функцию ajax.
Есть идеи, как это исправить?
Ответы
Ответ 1
Похоже, вы не можете, встроенная реализация не поддерживает его - вы можете видеть в ссылке выше: "не является частью стабильного выпуска или распространения".
Однако я загрузил и использовал внешнюю версию, доступную здесь:
http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
он немного больше, но использование в точности то же самое, вам не нужно ничего менять, для множественного выбора, добавьте в опции {multiple: true}
Обновление
JQueryUI теперь обновлен для новейших версий, что делает этот ответ устаревшим. Пример uptodate можно найти здесь
http://jqueryui.com/demos/autocomplete/#multiple
Ответ 2
Если вы используете версию Autocomplete "bassistance", она встроена. Но если вы используете версию пользовательского интерфейса jQuery, здесь есть пример:
http://jqueryui.com/demos/autocomplete/#multiple
Ответ 3
$("#tagnames").autocomplete("/tags/filter", {
max: 6,
highlightItem: true,
multiple: true,
multipleSeparator: " ",
})
Чтобы включить автозаполнение для нескольких слов, вы должны установить параметры несколько: true и multipleSeparator: ""
Ответ 4
Добавление комментария для более полного ответа, скажем, у вас есть два возможных варианта с общим префиксом:
ip5, аккумулятор ip5
если пользователь вводит в текстовое поле ip5, первый выбранный выше вариант автоматически выбирается, не позволяя пользователю продолжать вводить текст для второго выбора, чтобы избежать такого поведения, убедитесь, что вы используете опцию
triggerSelectOnValidInput: true,