jQuery自动完成标签,选中时在不同字段中的值

时间:2012-05-02 13:52:10

标签: jquery asp.net autocomplete jquery-autocomplete

我正在使用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" />

感谢您的帮助。

1 个答案:

答案 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();
        }
    });
});