javascript - 使用 JavaScript 验证 HTML 表单

标签 javascript html

我对 JavaScript 和 HTML 还很陌生。我正在尝试使用 JavaScript 验证反馈 HTML 表单。尽管如果输入框为空,代码应该显示警报,但实际上并没有显示任何警报。我已经研究了这个问题并修改了我的代码,但是这些似乎都没有用。

JavaScript 代码:

function validateForm() {
  var firstName = document.forms['feedback']['firstName'].value;
  if (firstName == null || firstName == "") {
    alert("First name is required");
    return false;
  }
  var lastName = document.forms['feedback']['lastName'].value;
  if (lastName == null || lastName == "") {
    alert("Surname is required");
    return false;
  }
  var email = document.forms['feedback']['email'].value;
  if (email == null || email == "") {
    alert("Email address is required");
    return false;
  }
  var date = document.forms['feedback']['date'].value;
  if (date == null || date == "") {
    alert("Date accessed is required");
    return false;
  }
  var tips = document.forms['feedback']['tips'].value;
  if (tips == null || tips == "") {
    alert("Web design tips is required");
    return false;
  }
  return true;
}

HTML代码:

<form name="feedback" onsubmit="return validateForm">
  First name: <input type="text" name="firstName" id="firstName">
  <br /> Surname: <input type="text" name="lastName" id="lastName">
  <br /> Email address: <input type="text" name="email" id="email">
  <br /> Date accessed: <input type="date" name="date" id="date">
  <br /> Web design tips: <textarea name="tips" id="tips"></textarea>
  <br />
  <button>Submit</button>
</form>

提前致谢!

最佳答案

你实际上并没有调用你的函数,你应该有 return validateForm(); 来调用它:

function validateForm() {
  var firstName = document.forms['feedback']['firstName'].value;
  if (firstName == null || firstName == "") {
    alert("First name is required");
    return false;
  }
  var lastName = document.forms['feedback']['lastName'].value;
  if (lastName == null || lastName == "") {
    alert("Surname is required");
    return false;
  }
  var email = document.forms['feedback']['email'].value;
  if (email == null || email == "") {
    alert("Email address is required");
    return false;
  }
  var date = document.forms['feedback']['date'].value;
  if (date == null || date == "") {
    alert("Date accessed is required");
    return false;
  }
  var tips = document.forms['feedback']['tips'].value;
  if (tips == null || tips == "") {
    alert("Web design tips is required");
    return false;
  }
  return true;
}
<form name="feedback" onsubmit="return validateForm();">
  First name: <input type="text" name="firstName" id="firstName">
  <br /> Surname: <input type="text" name="lastName" id="lastName">
  <br /> Email address: <input type="text" name="email" id="email">
  <br /> Date accessed: <input type="date" name="date" id="date">
  <br /> Web design tips: <textarea name="tips" id="tips"></textarea>
  <br />
  <button>Submit</button>
</form>

关于javascript - 使用 JavaScript 验证 HTML 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54886176/

相关文章:

javascript - CORS - 预检请求后发出的请求期望 'Access-Control-Allow-Credentials' 为真

javascript 电子邮件换行符

javascript - Knockout - 将单击绑定(bind)到嵌套数组子元素

javascript - 使折叠下的文本在切换隐藏显示时不移动

jquery - 输入字段在绝对定位中不起作用

javascript - 定义函数的最佳方式?

javascript - 滚动时自定义光标不随页面移动

html - 为什么 div 100% 宽度不能按预期工作

javascript - Jquery - 使用 grep 搜索表的所有列?

php - 通知 : Undefined index in php