2012-03-19 49 views
1

我有兩個DropDownList的jQuery的設置DropDownList的啓用

<asp:DropDownList ID="ddl1" runat="server" Width="173px" 
           CssClass="ddl" > 
          </asp:DropDownList> 

<asp:DropDownList ID="ddl2" runat="server" Width="173px" 
           CssClass="ddl" Enabled="False"> 
          </asp:DropDownList> 

我希望在第一個將ddl1.selectedindex = 3,以使第二個DDL2

+0

使用OnSelectedIndexChanged爲DDL1 – 2012-03-19 10:47:50

+0

OnSelectedIndexChanged只需要如果要填充的飛行DDL2的值,它會導致回發來做到這一點。 – Willem 2012-03-19 11:04:39

回答

2

您可以使用.change事件來檢查選定的值。

演示:http://jsfiddle.net/m8dX3/

的javascript:

$('#ddl1').change(function(){ 
    var ddl1=$(this); 
    var ddl2=$('#ddl2'); 
    if (ddl1.val()==3) { ddl2.removeAttr('disabled'); } 
    else { ddl2.attr('disabled','disabled').val(0); } 
}); 

,並確保您使用dropdownlists($('#<%=ddl1.ClientID%>'))的正確的ClientID,或者使用一個類名。

2

試試這個:

if($('[id$="ddl1"]').val() == 3) { 
    $('#ddl2').attr("disabled") = "disabled"; 
} 
+1

難道你不想'$('#ddl2')。attr(「disabled」)=「disabled」;'?禁用的值是「禁用」或「」。 – jadarnel27 2012-03-19 13:11:56

+0

@ jadarnel27謝謝:-) – Vimalnath 2012-03-19 13:16:26

+0

沒問題,我犯了同樣的錯誤=) – jadarnel27 2012-03-19 13:21:49

0

只是提供非jQuery的直列方式:

<asp:DropDownList ID="ddl1" runat="server" Width="173px" 
    CssClass="ddl" onchange="if (this.selectedIndex=3) {document.getElementById('ddl2').disabled=false;}"> 
          </asp:DropDownList> 

<asp:DropDownList ID="ddl2" runat="server" Width="173px" 
           CssClass="ddl" Enabled="False"> 
          </asp:DropDownList> 
相關問題