ASP.NET Textbox で JQuery UI Autocomplete を使用して、ラベルと値を設定しています。ajax呼び出しからデータをマップする場所は次のとおりです。
success: function (data) {
response($.map(data, function (item) {
return {
label: item.label,
value: item.value
}
}));
}
ラベルはテキストで、値はその行を識別するために使用される数値です。私の問題は、ユーザーがオプションを選択すると、テキストボックスがラベルを値に置き換えることです。したがって、「John Smith」を選択すると、テキストボックスが「John Smith」から「1234」に変わります。選択イベントを操作して、テキストをテキストボックスに残すにはどうすればよいですか? どんな助けでも大歓迎です。ありがとう!
私のaspxページのより完全なビューは次のとおりです。
<div class="ui-widget">
<asp:TextBox ID="txbSearchKeyword" runat="server" Columns="50" />
</div>
<asp:HiddenField ID="selectedRecordId" runat="server" />
そしてJquery:
(function () {
$("#txbSearchKeyword").autocomplete
({
source:
function (request, response) {
$.ajax({
type: "POST",
url: "AutoComplete.asmx/GetAutoCompleteList",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ keywordStartsWith: request.term }),
dataType: "json",
success: function (data) {
response($.map(data.d, function (item) {
return {
label: item.label,
value: item.value
}
}));
}
});
},
minLength: 2
});
$("#txbSearchKeyword").autocomplete
({
select: function (event, ui) {
$('#selectedRecordId').val(ui.item.value);
DoSomethingwithdataAJAXfunction(ui.item.value);
}
});
})();