1 javascript case switch-statement
嗨,我有一个switch语句,它在9或更少的情况下工作正常,如下所示
function checkBoxes(obj) {
var indx = obj.id.substring(obj.id.length-1, obj.id.length);
switch ( indx ) {
case '1':
if (document.sportsInfo.Info_1.checked) {
document.sportsInfo.Info_2.disabled = true;
document.sportsInfo.Info_2.checked = false;
document.sportsInfo.Info_3.disabled = true;
document.sportsInfo.Info_3.checked = false;
document.sportsInfo.Info_4.disabled = true;
document.sportsInfo.Info_4.checked = false;
document.sportsInfo.Info_5.disabled = true;
document.sportsInfo.Info_5.checked = false;
document.sportsInfo.Info_6.disabled = true;
document.sportsInfo.Info_6.checked = false;
document.sportsInfo.Info_7.disabled = true;
document.sportsInfo.Info_7.checked = false;
document.sportsInfo.Info_8.disabled = true;
document.sportsInfo.Info_8.checked = false;
document.sportsInfo.Info_9.disabled = true;
document.sportsInfo.Info_9.checked = false;
document.sportsInfo.Info_10.disabled = true;
document.sportsInfo.Info_10.checked = false;
document.sportsInfo.Info_11.disabled = true;
document.sportsInfo.Info_11.checked = false;
document.sportsInfo.Info_12.disabled = true;
document.sportsInfo.Info_12.checked = false;
}
else {
document.sportsInfo.Info_2.disabled = false;
document.sportsInfo.Info_3.disabled = false;
document.sportsInfo.Info_4.disabled = false;
document.sportsInfo.Info_5.disabled = false;
document.sportsInfo.Info_6.disabled = false;
document.sportsInfo.Info_7.disabled = false;
document.sportsInfo.Info_8.disabled = false;
document.sportsInfo.Info_9.disabled = false;
document.sportsInfo.Info_10.disabled = false;
document.sportsInfo.Info_11.disabled = false;
document.sportsInfo.Info_12.disabled = false;
}
break;
Run Code Online (Sandbox Code Playgroud)
但当它达到10或更高的情况时,它根本不起作用:
case '10':
if (document.sportsInfo.Info_10.checked) {
document.sportsInfo.Info_1.disabled = true;
document.sportsInfo.Info_1.checked = false;
document.sportsInfo.Info_2.disabled = true;
document.sportsInfo.Info_2.checked = false;
document.sportsInfo.Info_3.disabled = true;
document.sportsInfo.Info_3.checked = false;
document.sportsInfo.Info_4.disabled = true;
document.sportsInfo.Info_4.checked = false;
document.sportsInfo.Info_5.disabled = true;
document.sportsInfo.Info_5.checked = false;
document.sportsInfo.Info_6.disabled = true;
document.sportsInfo.Info_6.checked = false;
document.sportsInfo.Info_7.disabled = true;
document.sportsInfo.Info_7.checked = false;
document.sportsInfo.Info_8.disabled = true;
document.sportsInfo.Info_8.checked = false;
document.sportsInfo.Info_9.disabled = true;
document.sportsInfo.Info_9.checked = false;
}
else {
document.sportsInfo.Info_1.disabled = false;
document.sportsInfo.Info_2.disabled = false;
document.sportsInfo.Info_3.disabled = false;
document.sportsInfo.Info_4.disabled = false;
document.sportsInfo.Info_5.disabled = false;
document.sportsInfo.Info_6.disabled = false;
document.sportsInfo.Info_7.disabled = false;
document.sportsInfo.Info_8.disabled = false;
document.sportsInfo.Info_9.disabled = false;
}
break;
Run Code Online (Sandbox Code Playgroud)
我怎样才能让大于或等于10的案件工作?
您的子字符串总是只有一个字符:
substring(obj.id.length-1, obj.id.length)
Run Code Online (Sandbox Code Playgroud)
顺便说一句:如果要禁用除选中复选框之外的所有其他复选框,可以执行以下操作:
function checkBoxes(elem) {
if (elem.checked) {
for (var i=1; i<=12; i++) {
if ("Info_"+i == elem.id) continue;
document.sportsInfo["Info_"+i].disabled = true;
document.sportsInfo["Info_"+i].checked = false;
}
} else {
for (var i=1; i<=12; i++) {
if ("Info_"+i == elem.id) continue;
document.sportsInfo["Info_"+i].disabled = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)