Javascript Jquery自动完成,如何搜索单词而不是字符串
我有一个文本框,我想有一个自动完成,让用户搜索通过地址。用户必须能够键入不同的单词,并且自动完成必须搜索这些单词以缩小其列表 我一直在尝试和阅读文档,但似乎没有任何效果,因为它总是搜索整个字符串而不是单词。我错过什么了吗 例如: 当用户输入“Mathias Antwerp”时,他必须看到包含这些单词的所有地址。在本例中,它必须显示第二行中的一行Javascript Jquery自动完成,如何搜索单词而不是字符串,javascript,jquery,html,jquery-ui,autocomplete,Javascript,Jquery,Html,Jquery Ui,Autocomplete,我有一个文本框,我想有一个自动完成,让用户搜索通过地址。用户必须能够键入不同的单词,并且自动完成必须搜索这些单词以缩小其列表 我一直在尝试和阅读文档,但似乎没有任何效果,因为它总是搜索整个字符串而不是单词。我错过什么了吗 例如: 当用户输入“Mathias Antwerp”时,他必须看到包含这些单词的所有地址。在本例中,它必须显示第二行中的一行 <script> var addresses = [ { name: "Frederick Dereave Gentstreet 4
<script>
var addresses = [
{ name: "Frederick Dereave Gentstreet 4 Gent" },
{ name: "Mathias Derian Meilaan 9 Antwerp" },
{ name: "Mathias Hors frelaan 5 Kortrijk" }
];
$(document).ready(SetAutoComplete);
function SetAutoComplete() {
$("#testveld").autocomplete(emails,
{
matchContains: "word"
}
);
}
</script>
<input type="text" id="testveld" style='width:300px'/>
变量地址=[
{名称:“弗雷德里克·德里埃夫·根特街4号”},
{名称:“Mathias Derian Meilaan 9 Antwerp”},
{名称:“Mathias Hors frelaan 5 Kortrijk”}
];
$(文档).ready(设置自动完成);
函数SetAutoComplete(){
$(“#testveld”).autocomplete(电子邮件、,
{
“单词”
}
);
}
好的,您必须自己进行一些处理才能将字符串解析为单词。您可以使用jquery来实现这一点,或者如果您计划从服务器端获取地址,那么可以使用一些服务器端语言。我更改了jquery.autocomplete.js中matchSubset的代码,从而启用了我所寻找的行为
function matchSubset(s, sub) {
var arraySub=sub.split(" ");
if (!options.matchCase)
s = s.toLowerCase();
var i = s.indexOf(sub);
if (options.matchContains == "word"){
i = s.toLowerCase().search("\\b" + sub.toLowerCase());
}
//addition for split words
if (options.matchContains == "splittedword"){
for(itemindex=0;itemindex<arraySub.length;itemindex++){
i = s.toLowerCase().search(arraySub[itemindex].toLowerCase());
if(i==-1){
break;
}
}
}
if (i == -1) return false;
return i == 0 || options.matchContains;
};
函数匹配子集(s,sub){
var arraySub=子拆分(“”);
如果(!options.matchCase)
s=s.toLowerCase();
var i=s.indexOf(sub);
if(options.matchContains==“word”){
i=s.toLowerCase().search(\\b“+sub.toLowerCase());
}
//分词加法
if(options.matchContains==“splittedword”){
for(itemindex=0;itemindexi无法强制自动完成显示与他自己的逻辑不匹配的值,或者我可以?@MichaelD-除非您将自己的一些逻辑添加到jquery ui代码中,否则我不建议这样做。