J'utilise le plugin jQuery autocomplete (api doc) qui appelle un service qui renvoie json. J'ai le plugin consommer le résultat json bien et tout fonctionne, execpt ma fonction formatResult personnalisée n'est jamais appelée. Je voudrais utiliser cette fonction pour capturer l'utilisateur sélectionnant dans la liste de résultats pour remplir divers autres champs sur la page.Pourquoi ma fonction formatResult personnalisée n'est-elle pas appelée à l'aide du plugin jQuery autoComplete?
$(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
});
});
La chaîne JSON retournée du service est (deux objets) fournisseur
[{"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":[]}]
Ainsi,
1) Pourquoi formatResult est frappé jamais? 2) Existe-t-il un meilleur moyen de récupérer les propriétés de l'objet une fois qu'un utilisateur a sélectionné un élément dans les résultats?