2

ASP.NET ページに次のドロップダウンがあります。

<asp:DropDownList ID="selectAttending" runat="server">
              <asp:ListItem Value="Select One...">Select One...</asp:ListItem>
              <asp:ListItem Value="Yes">Yes</asp:ListItem>
              <asp:ListItem Value="No">No</asp:ListItem>
            </asp:DropDownList>

次のスクリプトもあります。

$(function (){
$("#selectAttending").change(function () { 
ToggleDropdown(); 
}); 
ToggleDropdown();  
}); 

function ToggleDropdown(){
if ($("#selectAttending").val() == "No") {
    $("#ifAttending").hide(); 
} 
else{
    $("#ifAttending").show(); 
 } 
}; 

彼らが出席している場合に表示したい DIV タグは次のとおりです: #ifAttending

ドロップダウンに属性を追加して、変更時に表示/非表示にする必要がありますか、それともコードが間違っていますか?

4

4 に答える 4

4

問題は、selectAttending が ASP コード ビハインド ページで使用されるコントロール ID であり、html のドロップダウン要素の ID ではないことです。

コントロールのクライアント ID を取得するには、次のようにする必要があります。

$(function (){
    $("#<%=selectAttending.ClientID%>").change(function () { 
        ToggleDropdown(); 
    }); 
    ToggleDropdown();  
}); 

function ToggleDropdown(){
    if ($("#<%=selectAttending.ClientID%>").val() == "No") {
        $("#ifAttending").hide(); 
    } 
    else{
        $("#ifAttending").show(); 
    } 
 }; 
于 2012-04-24T17:54:10.850 に答える
2

あなたは.netにいるので、識別子が.net selectAttending.UniqueIDにない場合、clientidmode = "static"を使用していない限り、jqueryの識別子は#selectAttendingではありません

于 2012-04-24T17:55:20.663 に答える
1

コードはほぼ正しいように見えます。私の推測ではDropDownList、クライアントの ID は、名前が containerselectAttendingであるため正確ではありません。

CSS クラス名を使用するか、次のような構文で ClientID を取得できます。

$("#<%=selectAttending.ClientID%>")
于 2012-04-24T17:54:01.973 に答える
1

コードは機能するはずですが、このコードを単純化して試すことができます。toggle要素を表示/非表示にするブール値パラメーターを取るjQuery メソッドを使用していることに注意してください。

$(function (){
   $("#selectAttending").change(function () { 
       $("#ifAttending").toggle(this.value == "Yes")
   })
   .change();//trigger the change event on page load
});
于 2012-04-24T17:52:53.487 に答える