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

时间:2014-02-03 21:02:44

标签: javascript html

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

编辑:我更正了代码。谢谢您的帮助。如上所述,我忘了关闭if块。希望不会再进一步​​投票。

编辑代码:

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>

1 个答案:

答案 0 :(得分:2)

您忘记了结束)

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

相反,它应该是:

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

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

此外,作为附注,警告中有一个字母s太多:

alert('Please enter a valid email addresss'); =&gt; alert('Please enter a valid email address');