【问题标题】:How to assign currently selected drop-down list item to a label in jQuery?如何将当前选定的下拉列表项分配给 jQuery 中的标签?
【发布时间】:2018-08-17 11:45:06
【问题描述】:

在我的 asp.net 网络表单应用程序中,我使用了一个下拉列表,其中的值来自后面的代码。我想将当前选定的下拉列表项分配给 jQuery 中的标签。这是下拉列表 HTML:

        <asp:DropDownList ID="ddlCustomers" CssClass="ddlCustomers" runat="server" AutoPostBack="false" Enabled="true" >
        </asp:DropDownList>

我想使用 jQuery 函数在document.ready() 内或在其范围之外更改下拉列表文本,以跟踪当前选定的客户并将其名称分配给标签。一旦我将当前选定的客户名称分配给该标签,我将不得不根据选定的客户在页面上显示内容。我在document.ready() 中使用了以下代码,但它不起作用。

              $("#ddlCustomers").change(function () {
                  var text = $('#ddlCustomers option:selected').text();

                  $('#lblCustName').text('Name =' + text);
              });

有没有办法用 jquery 将当前选择的客户名称分配给 ID 为 lblCustName 的标签?

【问题讨论】:

    标签: jquery asp.net webforms


    【解决方案1】:

    当与ContentPlaceHolders 一起使用时,Asp.Net 服务器控件 ID 往往会发生变化。访问服务器控件时使用 ClientID 或添加新属性 ClientIDMode 并将其值设置为 Static。这不会在运行时更改服务器控件的 ID。

    $("#<%= ddlCustomers.ClientID %>").on('change', function() {
        var text = $(this).find('option:selected').text();
    
        $('#<%= lblCustName.ClientID %>').text('Name =' + text);
    }); 
    

    【讨论】:

    • 谢谢@Suprabhat 它对我有用,但是当当前下拉文本分配给标签时,页面会自行刷新并且标签值再次丢失。有什么解决方案,以便我可以接受它作为答案。
    • 安静一个奇怪的行为。如我所见,您已经使用AutoPostBack="false" 停止回发。
    • 其实这个下拉列表的目的是根据当前选中的客户来选择数据,所以页面在刷新,标签文本丢失了。
    • 回发时会发生什么?你是调用方法还是什么?
    • 我认为如果您在连接处理程序后立即触发change 事件,它应该在页面加载时将标签设置为当前选择的值。 $("#&lt;%= ddlCustomers.ClientID %&gt;").on('change', function() { ... }).change();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    相关资源
    最近更新 更多