我有一个下拉列表,它会根据下拉列表的值选择复选框。它工作正常,但我无法弄清楚当值不匹配时我想要取消选中复选框。
例如,如果我选择A,则选择CheckBox2和CheckBox4是正确的。现在当我选择“选择一个字母”时,即使值9不等于1或2或3,仍然选中CheckBox2和CheckBox4。
现在,如果我选择C,则选择CheckBox1,CheckBox2和CheckBox3,如果我选择C以外的任何其他内容,则取消选中CheckBox1,这就是我想要的。当我使用||时似乎存在问题在一份声明中不止一次。
JS:
<script>
function setCheckBox1(value) {
var chk1 = document.getElementById("<%=CheckBox1.ClientID %>");
var chk2 = document.getElementById("<%=CheckBox2.ClientID %>");
var chk3 = document.getElementById("<%=CheckBox3.ClientID %>");
var chk4 = document.getElementById("<%=CheckBox4.ClientID %>");
var chk5 = document.getElementById("<%=CheckBox5.ClientID %>");
chk1.checked = (value == '3');
chk2.checked = (value == '1' || '2' || '3');
chk3.checked = (value == '0');
chk4.checked = (value == '1' || '2' || '3');
chk5.checked = (value == '0');
}
</script>
ASP.NET
<asp:DropDownList ID="DropDownList4" runat="server" onchange="setCheckBox1(this.value);">
<asp:ListItem Value="0">Choose Letter</asp:ListItem>
<asp:ListItem Value="1">A</asp:ListItem>
<asp:ListItem Value="2">B/<asp:ListItem>
<asp:ListItem Value="3">C</asp:ListItem>
<asp:ListItem Value="4">D</asp:ListItem>
<asp:ListItem Value="5">E</asp:ListItem>
<asp:ListItem Value="6">F</asp:ListItem>
<asp:ListItem Value="7">G</asp:ListItem>
<asp:ListItem Value="8">H</asp:ListItem>
</asp:DropDownList>
<asp:CheckBox ID="CheckBox1" runat="server" />
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:CheckBox ID="CheckBox3" runat="server" />
<asp:CheckBox ID="CheckBox4" runat="server" />
<asp:CheckBox ID="CheckBox5" runat="server" />