您好,我正在努力使这段代码更简洁。我在数组和循环方面苦苦挣扎,不知道如何将其转换为循环。这是 html 页面上表单的 javascript,如果他们将字段留空,当他们点击提交时,它应该返回一个警告框,如果所有内容都正确提交,它应该与他们确认。还有一个 reg exp 用于可接受的邮政编码条目。
function validate()
{
var register = document.forms[0];
if (register.fname.value === "")
{
alert("Please fill out your first name.");
return false;
}
else if(register.lname.value === "")
{
alert("Please fill out your last name.");
return false;
}
else if(register.address.value === "")
{
alert("Please fill out your address.");
return false;
}
else if(register.postal.value ==="")
{
alert("Please enter a valid postal code.");
return false;
}
else if(!checkPostal(register.postal.value))
{
alert("Please enter a valid postal code.");
return false;
}
else if(register.eAddress.value === "")
{
alert("Please fill out your email address.");
return false;
}
return confirm("Is the information correct?");
}
//postal code regExp
function checkPostal()
{
var myReg = /^[A-Z]\d[A-Z] ?\d[A-Z]\d$/ig;
return myReg.test(document.getElementById("postal").value);
}
最佳答案
如果你想减少 javascript,你可以把它变成一个纯 HTML 的解决方案:
输入有一个必需的
属性 ref
另外,输入有一个pattern
attr ref 支持正则表达式。
这种解决方案让浏览器处理反馈
<form>
<label>first name:
<input type="text" name="fname" required
minlength="1">
</label><br/>
<label>last name:
<input type="text" name="lname" required
minlength="1">
</label><br/>
<label>postal code:
<input type="text" name="zip" required pattern="^[A-Z]\d[A-Z] ?\d[A-Z]\d$"
minlength="1">
</label><br/>
<input type="submit" />
</form>
关于javascript - 尝试将这个大的 if else 语句转换为循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59081651/