在这个使用jQuery自动完成的基本示例中:
$("#textboxid").autocomplete(
{
source: testdata,
delay: 100,
minLength: 1
});
其中testdata
是本地数据数组,对基础源数组进行任何更改的推荐方法是什么,反映在自动完成选项中?
目前,如果我随后向testdata
数组添加一个新项目(即在已经在文本框元素上设置了自动完成功能之后),我在自动完成列表中看不到新选项。如果我动态地向页面添加新文本框并设置为自动完成,则会看到新选项。但现有元素却没有。
答案 0 :(得分:1)
最灵活的方法是使用回调作为源,它会轮询阵列/对象/服务器以获取数据并返回相应的响应。
以下是您如何测试此内容的示例:
var testdata = ["foo","bar","baz","quux"];
$("#textboxid").autocomplete({
source: function(request, callback) {
var possiblematches = testdata.filter(function(v) {
return v.match($.ui.autocomplete.escapeRegex(request.term));
});
callback(possiblematches);
},
delay: 100
});
示范:http://jsfiddle.net/Eeg5L/。可以找到source
选项的文档和更多信息here。
或者,您可以在使用以下命令修改数组后重置源:
$("#textboxid").autocomplete("option","source", testdata);
我建议您为数组使用setter,每当修改数组时都会自动执行此操作。
答案 1 :(得分:0)
更新testdata
时,请运行:
$('#textboxid').autocomplete('option', 'source', testdata);