jQuery Автозаполнение отображения результатов, содержащих ключевые слова поиска - PullRequest
1 голос
/ 12 августа 2011

Я пытаюсь реализовать что-то вроде мгновенного поиска Google, который отображает возможные поиски при вводе в текстовом поле.

До сих пор я получал результаты, так как json string и jquery autocomplete отображают их отлично.Теперь я хочу показать все результаты, в которых есть ключевые слова для поиска.

Как, например, в случае, если ключи поиска - "foo bar", а мой результат имеет "foo fun bar";теперь ключи "foo" и "bar" содержатся в результате, но текущий плагин автозаполнения не отображает его.

Есть ли способ изменить плагин для достижения этой цели?

Ответы [ 3 ]

1 голос
/ 12 августа 2011

Вам потребуется изменить поведение по умолчанию для функции фильтра виджета автозаполнения, чтобы разделить значение текстового поля на отдельные токены и искать исходный объект на каждом токене.

Вы можете скачать исходный код jQuery здесь . Посмотрите на строку 422 jquery.ui.autocomplete.js для функции фильтра, которую вам нужно изменить. Вы заметите, что он возвращает тест регулярного выражения, чтобы увидеть, соответствует ли элемент метки объекта значения, элемент значения или сам объект значения регулярному выражению. Вместо этого вам придется агрегировать результаты теста для каждой строки в массиве, возвращаемой вызовом .split () для строкового элемента, полученного из одного из этих трех источников.

Если вы хотите минимизировать ваш измененный код автозаполнения, используйте Служба компиляции Google Closure .

0 голосов
/ 12 августа 2011

Зависит от того, как вы получаете ваши данные.Разделите ключевые слова по пробелам и перечислите все данные, которые имеют как Foo, так и Bar.

0 голосов
/ 12 августа 2011

как вы запрашиваете ваши данные? на сайте сервера вы должны получить все записи , содержащие ваш поиск, а не Startwith.

...