使用JQuery获取Dropdown选定值

时间:2013-10-08 09:02:54

标签: jquery

我使用以下代码使用JQuery获取我的下拉列表的选定值。

pStartMonth = $('#cboMonth1').val();

但我得到的结果为undefined。我错过了什么?

我的下拉列表的HTML:

<asp:DropDownList ID="cboMonth1" runat="server" AutoPostBack="true" onclick="javascript:shouldsubmit=false;" ValidationGroup="vTimeSlot">
     <asp:ListItem Value="0">-Select-</asp:ListItem>
     <asp:ListItem Value="1">January</asp:ListItem>
     <asp:ListItem Value="2">February</asp:ListItem>
     <asp:ListItem Value="3">March</asp:ListItem>
     <asp:ListItem Value="4">April</asp:ListItem>
     <asp:ListItem Value="5">May</asp:ListItem>
     <asp:ListItem Value="6">June</asp:ListItem>
     <asp:ListItem Value="7">July</asp:ListItem>
     <asp:ListItem Value="8">August</asp:ListItem>
     <asp:ListItem Value="9">September</asp:ListItem>
     <asp:ListItem Value="10">October</asp:ListItem>
     <asp:ListItem Value="11">November</asp:ListItem>
     <asp:ListItem Value="12">December</asp:ListItem>
</asp:DropDownList>

5 个答案:

答案 0 :(得分:17)

ASP.Net控件的

id属性是在服务器端生成的,因此在生成的HTML中,id实际上就像_$ctrl0239023930。您需要使用的是ClientID,如下所示:

pStartMonth = $('#<%= cboMonth1.ClientID %>').val();

答案 1 :(得分:2)

你的陈述似乎完全没问题。您可能会遗漏以下一项或多项内容。

  • 包含jQuery库
  • 将代码放入docuemt.ready
  • 确保你

编辑根据更新后的OP,因为你有asp.net下拉列表,下拉列表的ID将在生成的html中更改,因此你需要使用ClientID。您还可以将ClientIDMode设置为static,以生成与服务器控件中相同的ID。

$(document).ready(function(){
   pStartMonth = $('#<%= cboMonth1.ClientID %>').val();
   alert(pStartMonth );
});

的ClientIDMode

  

ASP.NET为如何生成ClientID提供了多种算法   适当的价值。您可以选择要用于控件的算法   设置其ClientIDMode属性。算法由   以下列出的ClientIDMode枚举值   表,MSDN

您可以在javascript中使用服务器端id,方法是设置 ClientIDMode =“static”

HTML

<asp:DropDownList ID="cboMonth1" runat="server" ClientIDMode="static" AutoPostBack="true" onclick="javascript:shouldsubmit=false;" ValidationGroup="vTimeSlot">

的Javascript

pStartMonth = $('#cboMonth1').val();

答案 2 :(得分:2)

如果javascript函数在.js文件中,则使用:

    $('select[id$="cboMonth1"]').val();

如果它在.aspx文件中而不是使用:

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

答案 3 :(得分:1)

试试这个

$("#cboMonth1 option:selected").val();

答案 4 :(得分:0)

如果您的脚本位于未被解析为ASP.Net的文件中(例如包含的JS文件),您可以像这样引用元素......

pStartMonth = $('[id$=cboMonth1]').val();

这将找到一个ID为 cboMonth1结尾的ID元素。