Bootstrap Typeahead プラグインを次のように使用しています。
$('#Organisation').typeahead({
source: function (query, process) {
return $.get(AppURL + 'Organisations/Manage/SearchByName/',
{
term: query
},
function (data) {
var results = [];
var fullResults = [];
$.each(data, function (index, item) {
results.push(item.label);
fullResults.push({
id: item.ID,
label: item.label
});
});
return process(results);
});
},
updater: function (selection) {
$('#OrganisationID').val(selection);
}
});
2 つの配列が返されました。これは、Typeahead がオブジェクトではなく文字列のリストのみを必要とするためです。2 番目の配列には、ラベルと ID の両方が含まれています。
ユーザーがリストからアイテムを選択したら、この選択から ID を取得し、それを使用して隠しフィールドに挿入する必要があります。ただし、Typeahead を介して ID を渡すことができないため、選択は名前だけになります。
これを解決する方法についてのアイデアはありますか?
返される 2 つの配列の例:
結果:["Organisation 1","Organisation 2"]
完全な結果:[{"label":"Organisation 1","ID":2},{"label":"Organisation 2","ID":1}]