下拉列表未在第一次使用javascript更改另一个下拉列表时启用

时间:2013-12-26 07:28:06

标签: javascript jquery asp.net

我在我的asp.net页面中使用了两个下拉列表。在那里我想根据ddl1的值更改ddl ..我的设计编码如下:

<asp:DropDownList ID="ddl1" runat="server"  Width="158px" TabIndex="1">
    <asp:ListItem value="0">Please select</asp:ListItem>
    <asp:ListItem value="1">one</asp:ListItem>
    <asp:ListItem value="2">two</asp:ListItem>
    <asp:ListItem value="3">three</asp:ListItem>
</asp:DropDownList>

<asp:DropDownList ID="ddl2" runat="server"  Width="158px" TabIndex="1">
    <asp:ListItem value="1">one selected</asp:ListItem>
    <asp:ListItem value="2">two selected</asp:ListItem>
    <asp:ListItem value="3">three selected</asp:ListItem>
</asp:DropDownList>

我在javascript中编写代码,基于ddl1值,ddl2值必须更改。最初在页面加载ddl2被禁用..更改ddl1后,只有ddl2将被启用并根据ddl1进行更改..

$('#<%=ddl1.ClientID %>').change(function() {  

 var val =$('#<%=ddl1.ClientID %> option:selected').val();
 if (val == "0")
 {              
   $('#<%=ddl2.ClientID %>').attr('disabled', true);   
 }
 else
 {   
   $('#<%=ddl2.ClientID %>').attr('disabled', false);              
 }
);

我的问题是,在页面加载后,当我更改第一项的ddl1时,ddl2没有启用..更改ddl1后,只有ddl2启用并且其值发生变化..

2 个答案:

答案 0 :(得分:1)

试试这个

$('#<%=ddl1.ClientID %>').on('change',function() {  

 var val =$('#<%=ddl1.ClientID %> option:selected').val();
 if (val == "0")
 {              
   $('#<%=ddl2.ClientID %>').attr('disabled', true);   
 }
 else
 {   
   $('#<%=ddl2.ClientID %>').attr('disabled', false);              
 }
});

DEMO

答案 1 :(得分:0)

我在第一只眼睛上看到的内容 - 您在javascript中丢失了一个}: 试试这个:

$('#<%=ddl1.ClientID %>').change(function() {  

 var val =$('#<%=ddl1.ClientID %> option:selected').val();
 if (val == "0")
 {              
   $('#<%=ddl2.ClientID %>').attr('disabled', true);   
 }
 else
 {   
   $('#<%=ddl2.ClientID %>').attr('disabled', false);              
 }
} // it was lost
);

并且不使用truefalse,但使用disabled="disabled"来禁用控件