3 回答
TA贡献1836条经验 获得超5个赞
尝试这个 ?您可以使用Array.every
可用的方法。
function afterLogin(event){
event.preventDefault();
if((!radios.every(radio => radio.checked) || userName.value === "" || numOfQuestions.value === ""){
skillMsg.innerHTML = "Please check one of the skills before login";
isTrue = false;
}else{
title[0].innerHTML = "Welcome " + userName.value;
loginForm.style.display = "none";
calForm.style.display = "block";
formsColor.style.backgroundColor = color.value;
startTheGame();
isTrue = true;
}
}
TA贡献1820条经验 获得超2个赞
是的,有可能,创建一个不同的验证函数来进行健全性检查,或者在同一个函数本身中进行
function afterLogin(event){
event.preventDefault();
let notChecked = false;
for(let i = 0; i < radios.length; i++){
if(!radios[i].checked){
notChecked = true;
break;
}
}
if(notChecked || userName.value === "" || numOfQuestions.value === ""){
skillMsg.innerHTML = "Please check one of the skills before login";
isTrue = false;
}else{
title[0].innerHTML = "Welcome " + userName.value;
loginForm.style.display = "none";
calForm.style.display = "block";
formsColor.style.backgroundColor = color.value;
startTheGame();
isTrue = true;
}
}
TA贡献1811条经验 获得超4个赞
是的,您可以使用 every() 函数来检查这一点。
var radios = [{checked: false}, {checked: false}, {checked: false}, {checked: false}];
if(radios.every(checkValue) || userName.value === "" || numOfQuestions.value === "") {
// your code
}
function checkValue({checked}) {
return checked === false;
}
还要尝试使用干净的代码原则。就像尝试使用“失败优先”方法一样,使用 if 并返回,这样您就不必在那里使用 else 块。只需将 else 部分放在 if 块之外即可。
添加回答
举报