我正在使用调用返回json的服务的自动完成jQuery插件(api doc)。我有插件消耗JSON结果罚款,一切正常,执行我的自定义formatResult函数永远不会被调用。我想使用该函数来捕获用户从结果列表中选择以填充页面上的各种其他字段。为什么不使用jQuery自动完成插件调用我自定义的formatResult函数?
$(document).ready(function() {
$("#vendorname").autocomplete("/Vendor/Search", {
dataType: 'json',
parse: function(data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i].Name, result: data[i].Name };
}
return rows;
},
formatItem: function(row, i, n) {
return row.RepName + ' (' + row.VendorId + ')';
},
formatResult: function(row, i, n) {
return '(formatResult) ' + row.Name;
},
width: 200,
mustMatch: false,
scroll: true,
scrollHeight: 300
});
});
JSON字符串从服务返回的是(双供应商对象)
[{"VendorId":1,"Name":"abc","RepName":"rep of abc","Phone":null,"Email":null,"Notes":null,"Version":null,"Fax":null,"ProductQuotes":[],"PurchaseOrders":[]},{"VendorId":2,"Name":"def","RepName":"rep of def","Phone":null,"Email":null,"Notes":null,"Version":null,"Fax":null,"ProductQuotes":[],"PurchaseOrders":[]}]
所以,
1)为什么formatResult永远不会打?
2)当用户从结果中选择一个项目时,是否有更好的方法来获取对象属性?