12

次のコードを使用して、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>
4

5 に答える 5

18

idASP.Net コントロールの属性はサーバー側で生成されるため、生成された HTML ではid実際には_$ctrl0239023930. 使用する必要があるのはClientID次のようなものです。

pStartMonth = $('#<%= cboMonth1.ClientID %>').val();
于 2013-10-08T09:09:25.607 に答える
2

あなたが持っている声明は完全に問題ないようです。次の 1 つまたは複数が欠落している可能性があります。

  • jQuery ライブラリを含める
  • コードを docuemt.ready に入れる
  • 確実に

編集更新されたOPに基づいて、asp.netドロップダウンがあるため、生成されたhtmlでドロップダウンのIDが変更されるため、ClientIDを使用する必要があります。また、 ClientIDModeをに設定staticして、サーバー コントロールと同じ ID を生成することもできます。

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

クライアント ID モード

ASP.NET には、ClientID プロパティ値を生成するための複数のアルゴリズムが用意されています。ClientIDMode プロパティを設定して、コントロールに使用するアルゴリズムを選択します。アルゴリズムは、次の表MSDNに一覧表示されている ClientIDMode 列挙値によって識別されます。

ClientIDMode = "static"idを設定することで、javascript でサーバー側を使用できます。

HTML

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

Javascript

pStartMonth = $('#cboMonth1').val();
于 2013-10-08T09:09:01.897 に答える
2

JavaScript 関数が .js ファイルにある場合は、次を使用します。

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

.aspx ファイルにある場合は、次を使用します。

    $('#<%= cboMonth1.ClientID %>').val();
于 2013-10-08T09:19:24.747 に答える
1

これを試して

$("#cboMonth1 option:selected").val();
于 2013-10-08T09:06:32.917 に答える
0

スクリプトが ASP.Net として解析されないファイル (インクルードされた JS ファイルなど) にある場合は、次のように要素を参照できます...

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

これにより、 ID が で終わる cboMonth1要素が見つかります。

于 2013-10-08T09:13:40.893 に答える