【问题标题】:getting selected value from .NET dropdown using JQuery使用 JQuery 从 .NET 下拉列表中获取选定的值
【发布时间】:2011-05-19 13:15:40
【问题描述】:

我试图在 JQuery 中获取 .NET 下拉列表的值,但我只能获取所选项目的 ID,而不是所选值。是否有可能做到这一点?这是我当前的代码,它获取所选项目的 ID:

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

【问题讨论】:

  • 该代码实际上确实获取了元素的值,而不是 id。使用诸如 Firebug 或开发者控制台之类的东西来检查您的实际页面。也许您想要下拉列表中所选&lt;option&gt; 的文本内容,这与值相同。

标签: jquery asp.net


【解决方案1】:

试试

alert($('#<%=ddlReportPeriods.ClientID %> option:selected').text());

【讨论】:

  • 这是有效的语法,虽然有错别字,但应该是:alert($('# option:selected').text());
  • 使用客户端:$("[id$='ddlReportPeriods'] option:selected").text()
  • @Mateusz Migała,是的,如果您使用外部 javascript 文件,这会更简洁。
  • 我发现值 (.val()) 是我想要的,而不是文本。因此,对于我来说, $('# option:selected').val() 是正确的语法。如果有人在提取文本 (.text()) 时遇到问题,请尝试 .val()。
【解决方案2】:

你可以设置一个ASP.NET控件的属性在运行时不会改变ID,即

ClientIDMode = "Static"

那就试试吧,

alert($("#ddlReportPeriods option:selected").val());

【讨论】:

  • .val() 对我有用,而不是 .text()。谢谢。
【解决方案3】:

如果和普通的html下拉框一样可以试试

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

【讨论】:

  • 语法错误,无法识别的表达式:# option:selected
【解决方案4】:

试试这个:

alert($('#<%=ddlReportPeriods.ClientID %> OPTION:selected').val());

【讨论】:

    【解决方案5】:

    如果您想要的是 &lt;select&gt; 元素下当前选择的 &lt;option&gt; 标记的文本内容,那么您可以这样做:

    var $sel = $('#<%=ddlReportPeriods.ClientID %>');
    alert($($sel.attr('options')[$sel.attr('selectedIndex')).text());
    

    edit — 其他建议使用 ":selected" 限定词的答案比这个更好......

    【讨论】:

      【解决方案6】:
      <asp:DropDownList ID="ddMainMenuList" runat="server" class="form-control">
                              </asp:DropDownList>
      
      $("[id*=ddMainMenuList]").val("SomeValue");
      

      这是您可以为下拉列表或文本框或任何其他 asp 控件分配一些值的方式。只是你必须提到“id”。

      【讨论】:

      • 该问题要求解决方案来获取值,而不是更改它。
      猜你喜欢
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2019-03-07
      相关资源
      最近更新 更多