我在我的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启用并且其值发生变化..
答案 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);
}
});
答案 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
);
并且不使用true
和false
,但使用disabled="disabled"
来禁用控件