javascript - 尝试将这个大的 if else 语句转换为循环

标签 javascript html arrays forms for-loop

您好,我正在努力使这段代码更简洁。我在数组和循环方面苦苦挣扎,不知道如何将其转换为循环。这是 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/

相关文章:

html - Chrome : border-radius on image with padding and background

c - 不是一切都在它应该在的地方,为什么会出现段错误?

php - 将参数传递给新窗口php

HTML + CSS - 单击后按钮未返回初始状态

javascript - 在 JavaScript 中使用 for 循环为音频文件分配不同的源

javascript对正数和负数的限制,带有基于onkeyup和onkeypress的分隔符逗号

c++ - 数组中基于查询的移位元素

python - 将 numpy 数据插入到更大的零数组中

javascript - 如何从 fetch API 输出数组中获取不同的值

javascript - jquery:在 .find() 之后保留 &lt;script&gt; 标签