我如何使用JQuery自动完成function来处理多个单词

我有一个自动完成字段,我只是想知道如何将它用于多个单词? 当我输入第一个单词时它完美无缺,但是当我在第二个单词中输入空格并输入时,它会将两个单词发送回服务器,当然结果是错误的!

例如。 当我输入两个单词时,

‘Java javascript’

第一个单词’Java’,自动完成效果很好,拉出列表。

但当我空格键入javascript时,自动完成function会将’Java + javascript’发送到我的ajax函数。

任何想法如何解决这一问题?

看起来你不能,内置的实现不支持它 – 你可以在上面的链接中看到:“不是稳定版本或发行版的一部分”。

但是,我已下载并使用外部版本,可在此处获得 :

http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

它有点大,但用法完全相同,你不必改变任何东西,多选,添加到选项{multiple:true}

更新

JQueryUI现在已经针对最新版本进行了更新,使得这个答案已经过时了。 可以在此处找到最新的示例

http://jqueryui.com/demos/autocomplete/#multiple

如果你使用的是“bassistance”版本的Autocomplete,它就是内置的。但是如果你使用的是jQuery UI版本,这里有一个例子:

http://jqueryui.com/demos/autocomplete/#multiple

$("#tagnames").autocomplete("/tags/filter", { max: 6, highlightItem: true, multiple: true, multipleSeparator: " ", }) 

要为多个单词启用自动完成,您应该设置多个选项:truemultipleSeparator:“”

添加注释以获得更完整的答案,假设您有两个可能的选项,使用公共前缀:

ip5ip5电池

如果用户输入文本框ip5,则上面的第一个选择将自动选择而不让用户继续输入第二个选项,以避免此行为,请确保使用该选项

triggerSelectOnValidInput:true,