我想知道如何格式化源代码以允许这个例子:
我希望能够通过输入与单个对象匹配的名称,参考或地址来自动填充字段
所以这主要是格式化问题
id 1 = { name = "test", ref = "1337", address = "123 street" }
2 = { name = "john", ref = "2", address = "oxford street" }
这是我到目前为止所做的,但它不起作用。我知道我错过了一些非常明显的东西。
var autocompleteFields = new Array();
for (var i in db._data.installations)
{
smallArray = [db._data.installations[i].name, db._data.installations[i].reference, db._data.installations[i].address];
autocompleteFields.push(smallArray);
}
$("#input_search_installation_autocomplete").autocomplete({
source: autocompleteFields
});
});
感谢。
答案 0 :(得分:1)
也许这不是那么简单的解决方案,但它有效:
var data = [
{ id: 1, name: "test", ref: "1337", address: "123 street" },
{ id: 2, name: "john", ref: "2", address: "oxford street" }
];
$("#input_search_installation_autocomplete").autocomplete({
minLength: 1,
//define callback to format results
source: function (req, add) {
add(getSourceData(req));
},
}).data("autocomplete")._renderItem = (function (ul, item) {
if (item == undefined) return;
var label = '<span>' + item.name + " " + item.address + '</span>';
return $("<li></li>").data("item.autocomplete", item).append(label).appendTo(ul);
});
function getSourceData(req) {
var source = new Array();
var query = req.term;
for(var i = 0; i < data.length; i++) {
var entry = data[i];
if (entry.name.indexOf(query) > -1 || entry.ref.indexOf(query) > -1 || entry.address.indexOf(query) > -1) {
source.push(entry);
}
}
return source;
}
代码:http://jsfiddle.net/2AUN8/6/
希望它有所帮助。