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條經驗 獲得超3個贊
是的,有可能,創建一個不同的驗證函數來進行健全性檢查,或者在同一個函數本身中進行
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 塊之外即可。
添加回答
舉報