Получить выделенное выделение с помощью 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>

Ответ 1

id атрибуты элементов управления ASP.Net создаются на стороне сервера, поэтому в вашем сгенерированном HTML id на самом деле будет что-то вроде _$ctrl0239023930. Вам нужно использовать ClientID следующим образом:

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

Ответ 2

У вас есть все в порядке. вам может быть недостает одного или нескольких из следующих.

  • Включить библиотеку jQuery
  • Введите код в documentemt.ready
  • Убедитесь, что вы

Изменить. Основываясь на обновленном OP, поскольку у вас есть раскрывающийся список asp.net, идентификатор выпадающего списка будет изменен в сгенерированном html, поэтому вам нужно использовать ClientID. Вы также можете установить ClientIDMode на static для создания того же идентификатора, что и в управлении сервером.

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

ClientIDMode

ASP.NET предоставляет несколько алгоритмов для создания ClientID стоимость имущества. Вы выбираете, какой алгоритм использовать для управления устанавливая его свойство ClientIDMode. Алгоритмы идентифицируются значения перечисления ClientIDMode, перечисленные ниже table, MSDN.

Вы можете использовать серверную сторону id в javascript, установив ClientIDMode = "static"

HTML

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

Javascript

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

Ответ 3

Попробуйте это

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

Ответ 4

Если функция javascript находится в файле .js, используйте:

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

Если он находится в файле .aspx, чем использовать:

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

Ответ 5

Если ваш script находится в файле, который не обрабатывается как ASP.Net(например, включенный JS файл), вы можете ссылаться на этот элемент следующим образом:

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

Это найдет элемент с идентификатором, заканчивающийся cboMonth1, который будет вашим.