我需要一个组合框(id / name)对,用户选择一个项目,并将id发送到服务器。 同时组合框调用ajax webservice来选择自动完成
我有一个几乎有效的例子,在JSFiddle
中这是AJAX部分:
source: function(request, response) {
$.ajax({
url: "http://ws.geonames.org/searchJSON",
type: "POST",
dataType: "jsonp",
data: {
featureClass: "P",
style: "full",
username: "andrebarata",
maxRows: 12,
name_startsWith: request.term
},
success: function(data) {
response($.map(data.geonames, function(item) {
return {
label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
value: item.geonameId
}
}));
}
})
},
唯一的问题是,当我选择一个值时,它会将值更改为ID而不是名称。
我该怎么做才能改变这个?
答案 0 :(得分:1)
如果我更改" value:item.geonameId" by" value:item.name"它的工作......
并获取id添加新属性" geoid"像这样:
success: function(data) {
response($.map(data.geonames, function(item) {
return {
label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
value: item.name,
geoid: item.geonameId
}
}));
}
})
},
select: function(event, ui) {
alert(ui.item.value+" , "+ ui.item.geoid);