我想自动填写一个下拉列表。
这是我的 json字符串:
[{ “ID”:1, “名称”: “大卫”},{ “ID”:2 “名称”: “保罗”}]
这是我的输入:
<input type="text" id="tbNames" />
这是我的 javascript :
//datas variable contains the json string
function BindNames(datas) {
$('#tbNames').autocomplete({
source: datas,
minLength: 0,
scroll: true,
select: function (event, ui) {
$("#tbNames").val(ui.item.Name);
return false;
}
}).focus(function () {
$(this).autocomplete("search", "");
});
}
问题是,当我点击'tbNames'输入时,会显示下拉列表,但不会显示内部名称但是列表中有名称,因为当我点击下拉列表中的一个时,其中一个名称显示在我的输入中。
http://jsbin.com/wudidaqapo/1/edit?html,css,js,console,output
感谢您的帮助。
答案 0 :(得分:1)
试试这个:
function BindNames() {
var datas=[{"ID":1,"Name":"david"},{"ID":2,"Name":"Paul"}];
$('#tbNames').autocomplete({
source: function (request, response) {
response($.grep(($.map(datas, function (v, i) {
return {
label: v.Name,
value: v.ID
};
})), function (item) {
return item.label;
}));
},
minLength: 0,
scroll: true,
}).focus(function () {
$(this).autocomplete("search", "");
});
}
答案 1 :(得分:1)
请查看它是否对您有所帮助。请使用自动填充器用于查找匹配项的json对象中的“label”属性
[{"ID":1,"Name":"david","label":"david"},{"ID":2,"Name":"Paul","label":"Paul"}]