Подтвердить что ты не робот

Как использовать JQuery Autocomplete для нескольких слов

У меня есть поле автозаполнения, и мне просто интересно, как я могу его использовать для нескольких слов? Когда я печатаю первое слово, оно работает отлично, но когда я пробелю и набираю второе слово, он отправляет два слова назад на сервер, и, конечно, результаты неверны!

например. когда я набираю два слова,

'Java javascript'

первое слово "Java", автозаполнение работает хорошо, вытащите список.

но когда я пробелю и набираю javascript, autocomplete отправляет 'Java + javascript 'в мою функцию ajax.

Есть идеи, как это исправить?

4b9b3361

Ответ 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,