我如何使用JQuery自动完成function来处理多个单词
我有一个自动完成字段,我只是想知道如何将它用于多个单词? 当我输入第一个单词时它完美无缺,但是当我在第二个单词中输入空格并输入时,它会将两个单词发送回服务器,当然结果是错误的!
例如。 当我输入两个单词时,
‘Java javascript’
第一个单词’Java’,自动完成效果很好,拉出列表。
但当我空格键入javascript时,自动完成function会将’Java + javascript’发送到我的ajax函数。
任何想法如何解决这一问题?
看起来你不能,内置的实现不支持它 – 你可以在上面的链接中看到:“不是稳定版本或发行版的一部分”。
但是,我已下载并使用外部版本,可在此处获得 :
http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
它有点大,但用法完全相同,你不必改变任何东西,多选,添加到选项{multiple:true}
更新
JQueryUI现在已经针对最新版本进行了更新,使得这个答案已经过时了。 可以在此处找到最新的示例
如果你使用的是“bassistance”版本的Autocomplete,它就是内置的。但是如果你使用的是jQuery UI版本,这里有一个例子:
$("#tagnames").autocomplete("/tags/filter", { max: 6, highlightItem: true, multiple: true, multipleSeparator: " ", })
要为多个单词启用自动完成,您应该设置多个选项:true和multipleSeparator:“”
添加注释以获得更完整的答案,假设您有两个可能的选项,使用公共前缀:
ip5 , ip5电池
如果用户输入文本框ip5,则上面的第一个选择将自动选择而不让用户继续输入第二个选项,以避免此行为,请确保使用该选项
triggerSelectOnValidInput:true,