【问题标题】:jQuery autocomplete label, value in different fields when selectedjQuery自动完成标签,选择时不同字段中的值
【发布时间】:2012-05-12 00:15:24
【问题描述】:

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

感谢您的帮助。

【问题讨论】:

    标签: jquery asp.net autocomplete jquery-autocomplete


    【解决方案1】:

    您需要为自动完成连接 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();
            }
        });
    });
    

    【讨论】:

    • @bPratik 谢谢,我用 ui.item.id 领先了自己(应该是 .value)。上面编辑的代码对我有用。
    • 谢谢斯蒂芬,认为这很好用,但有一个小问题,如果你将鼠标放在选择上,它会将 ID 放在文本框中,直到你点击?!
    • 没问题,斯蒂芬,我只是复制了 select: 焦点下的函数:这​​似乎已经成功了。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多