2012-04-24 4 views
2

나는 내 ASP.NET 페이지에서 다음 드롭에게 있습니다표시/숨기기 DIV

<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

변경 사항을 표시하거나 숨기려면 속성을 드롭 다운에 추가해야합니까, 아니면 코드가 잘못 되었습니까?

+1

귀하의 ID가 정확한지 알고 계십니까? 'selectAttending'은 .net에 의해 한정어를 붙일 수 있습니다. 렌더링 된 페이지를 확인 하시겠습니까? – SouthShoreAK

+0

응용 프로그램을 실행할 때 selectAttending의 HTML ID는 어떻게 렌더링됩니까? 정말로 "selectAttending"입니까? – MilkyWayJoe

+1

아들은 .... 두 번째로 나를 괴롭혔다. 감사. – Geekender

답변

1

코드는 작동하지만 단순화하고이 코드를 사용해보십시오. 요소를 표시하거나 숨기려면 부울 매개 변수를 사용하는 jQuery toggle 메서드를 사용하고 있습니다.

$(function(){ 
    $("#selectAttending").change(function() { 
     $("#ifAttending").toggle(this.value == "Yes") 
    }) 
    .change();//trigger the change event on page load 
}); 
1

코드가 올바르게 표시됩니다. 제 생각 엔 클라이언트의 DropDownList ID가 naming containers이므로 정확히 selectAttending이 아닙니다.

당신은 CSS 클래스 이름을 사용하거나 같은 구문으로 된 ClientID를 얻을 :

$("#<%=selectAttending.ClientID%>") 
4

문제는 selectAttending가 제어 페이지 뒤에 ASP 코드에서 사용하는 ID와하지 드롭 다운의 id라는 것이다 HTML에서 요소.

당신은 컨트롤의 클라이언트 ID 얻기 위해이 작업을 수행해야합니다 : 당신은 = "정적 clientidmode을 사용하지 않는 을 #selectAttending하지 않는 당신은 그물에

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

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

그래서 JQuery와의 식별자를 "귀하의 식별자가 .net에있을 경우. selectAttending.UniqueID