【问题标题】:Get Asp control id using jQuery使用 jQuery 获取 Asp 控件 ID
【发布时间】:2014-02-20 10:43:36
【问题描述】:

我知道这个问题已经被问过好几次了,但我无法解决这个问题。我的问题很简单,我们如何使用 jQuery 获取 asp 下拉列表。

ASP

<asp:DropDownList ID="ddlNewPortfolioName" Width="150" runat="server" AutoPostBack="True"></asp:DropDownList>

JS

alert($("[id$='<%=ddlPortfolioName.ClientID %>']").val());

这个逻辑对我不起作用,它显示未定义的值,dropdown 中是否有一些可用的值,并且从这些第一个被选中。请帮我解决这个问题

【问题讨论】:

    标签: javascript jquery html asp.net client-side


    【解决方案1】:

    只需使用ID Selector (“#id”),如果您只有一项要获取,则不需要带通配符的属性选择器。正如ClientID 为您提供完整且准确的元素ID。

    alert($('#<%= ddlPortfolioName.ClientID %>').val());
    

    如果您使用的是框架 4 或更高版本,您可以使用 Control.ClientIDMode 将 Server id 保留为 ClientID

    alert($('#ddlPortfolioName').val());
    

    如果您在网格或中继器或列表视图中有下拉菜单,那么您将必须使用包含通配符和属性选择器。

     $('[id*=ddlPortfolioName]').each(function(){
           alert($(this).val());
     });
    

    【讨论】:

    • 对不起,这对我也不起作用,您能建议其他解决方案吗
    • 这个下拉菜单是网格还是中继器或列表视图?
    【解决方案2】:

    您需要选择选定的选项,然后获取它的值。使用:

    $('#<%=ddlPortfolioName.ClientID %> option:selected').val()
    

    【讨论】:

      【解决方案3】:

      你可以试试像dis

      Var data=$("input[id*=ddlPortfolioName]").val();
      
      alert(data);
      

      alert($('#<%= ddlPortfolioName.ClientID %>').val());
      

      或者如果它在子页面中..den u hv 传递服务器端 ID..例如我的服务器端 id 是

      alert($("#ctl00_MainContent_ddlPortfolioName").val());
      

      【讨论】:

        猜你喜欢
        • 2010-09-21
        • 1970-01-01
        • 2013-01-21
        • 1970-01-01
        • 1970-01-01
        • 2011-02-16
        • 1970-01-01
        • 2013-12-21
        • 2013-02-19
        相关资源
        最近更新 更多