我尝试使用外部Json作为自动完成Jquery UI插件的源:http://jqueryui.com/autocomplete/
我没有强调好方法,以及json的良好格式。在我的例子中,il在我的json中: [ “TAG1”, “TAG2”, “TAG3”]
自动完成似乎有效,但如果开始输入“a”,则自动完成会提出json中的所有标记。似乎autocomplete不会过滤json的内容,并且始终在json中显示整个标记。 所以,我不明白如何获得正常的行为:例如,当我输入“t”时,自动完成仅向我提出“tag1”。
我的页面在这里: http://tcdemo.fr/temp/test.html
Json在这里: http://tcdemo.fr/temp/search.json
非常感谢
答案 0 :(得分:0)
查看代码,您可以为解决方案做三件事:
如果它是一组静态对象,则将json加载到.tagit()
绑定之外,并将json结果传递给availableTags
属性。默认情况下会处理过滤。
$("#mytags").tagit({
availableTags: jsonResult, // search.json is loaded into jsonResult
show_tag_url: "/tags/",
singleField: true,
singleFieldNode: $('#submit_tag_names')
});
否则,如果由于某种原因更喜欢您的方法 - 在javascript端过滤成功结果。将脚本中的成功函数更改为:
success: function(choices) {
var filter = search.term.toLowerCase();
var filteredChoices = $.grep(choices, function(element) {
// Only match autocomplete options that begin with the search term.
return (element.toLowerCase().indexOf(filter) === 0);
});
showChoices(this._subtractArray(filteredChoices, this.assignedTags()));
}
希望这有帮助