我正在使用jQuery自动完成功能(http://jqueryui.com/demos/autocomplete/)并使其工作,但当用户选择一个项目时,它会将值放在文本框中。我希望这样当用户选择一个项目时,标签将被用作文本框中的文本,并将值插入隐藏字段'cId'。
我环顾四周,似乎找到了解决方案。
我的值在一个名为ClientCsv的字符串中,如:
[ { label: "ClientId1", value: "ClientName1" }, { label: "ClientId2", value: "ClientName2" } ]
我目前使用的jquery是:
$(function () {
var availableTags = [ " & ClientCsv() & " ]; $('#tags').autocomplete({ source: availableTags});
});
表格代码:
<asp:TextBox ID="tags" runat="server"></asp:TextBox>
<asp:HiddenField ID="cId" runat="server" />
感谢您的帮助。
答案 0 :(得分:2)
您需要连接自动填充的select事件,然后阻止在搜索字段中填充值的默认操作。
var availableTags = [{ label: "ClientId1", value: "ClientName1" }, { label: "ClientId2", value: "ClientName2"}];
$(function () {
var txt = $('#tags');
txt.autocomplete({
source: availableTags,
select: function(event, ui){
//put the label in your text field
txt.val(ui.item.label);
//put the value in your hidden field
$('#cId').val(ui.item.value);
//cancel the event to prevent it populating the value
event.preventDefault();
}
});
});