JavaScript 电子邮件验证表单不起作用

标签 javascript html

我已经开始在 w3Schools 上学习 JavaScript。我尝试执行该网站中给出的示例之一。由于某种原因我无法让它发挥作用。希望这不是重复的问题。我没有收到警报消息。如果有任何错误,请告诉我,因为这是我学习过程的第一步。

编辑:我更正了代码。谢谢您的帮助。如前所述,我忘记关闭 if block 。希望人们不会进一步投反对票。

编辑后的代码:

JS

function validate() {
  //A simple mail validation function. Checks only period and '@'.
  var email = document.forms['loginForm']['email'].value;
  var period = email.lastIndexOf('.');
  var atPosition= email.indexOf('@');
  if (period < 1 || period + 2 > email.length || atPosition!= email.lastIndexOf('@')) {
    alert('Please enter a valid email address');
    return false;
  }
}

HTML

<form action='verify.do' id="loginForm" method='post' name='loginForm'
onsubmit='return validate()'>
    E-Mail: <input autofocus="" name='email' type='text'><br>
    <input type='submit' value='Submit'>
</form>

最佳答案

您忘记了此处的结束符):

if (period < 1 || period + 2 > email.length || period != email.lastIndexOf('@') {

相反,它应该是:

if (period < 1 || period + 2 > email.length || period != email.lastIndexOf('@')) {

此外,您可能应该添加服务器端验证,因为这很容易被绕过。

此外,顺便说一句,您的警报中的字母 s 过多:

alert('请输入有效的电子邮件地址'); => alert('请输入有效的电子邮件地址');

关于JavaScript 电子邮件验证表单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21537690/

相关文章:

javascript - 解析 Javascript 生成 HTML 的链接?

javascript - JS 获取 cookie ASP.NET Core Identity

javascript - 在转换后的 div 中防止图像失真?

jquery - 左侧菜单切换图像

javascript - 使用哪个选择器?

javascript - 移动 Android Chrome 在 "window.scrollTo"和 "behavior: smooth"之后起伏不定的滞后滚动

javascript - 您好,我想让 4 个对象循环从左到右移动,但我的代码不起作用

javascript - 调整 td 中动态加载的内容而不换行

html - 对 CSS 特殊性感到困惑

html - ul li 在 div 左侧对齐和对齐