1

可能重复:
在 Javascript 中验证电子邮件地址?

我有一个使用 PHP/MySQL 发布到数据库的 HTML 表单。在表单的电子邮件部分,如果用户键入的电子邮件地址不是有效的电子邮件地址格式,我希望向用户显示一条错误消息。我正在模拟这样的代码,但我无法让它工作。

请注意,每当我点击表单上的提交按钮时,表单都会提交,并且 PHP 操作工作正常。问题是我可以在表格中输入任何我喜欢的东西,它会通过的。我希望它显示错误消息“不是有效的电子邮件地址”。我知道我也可以通过 PHP 进行验证,但我也想在客户端进行验证。

有人可以帮忙吗?

    <script type="text/javascript">
function validateEmail()
{
var x=document.forms["test"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
 {
alert("Not a valid e-mail address");
return false;
 }
 }
  </script>


  <form name"test" action="roads.php" onsubmit="return validateEmail();" method="post">

  <input type="text" name="email" placeholder="Enter your e-mail" />

   <input type="submit" value="Show Me!" />

   </form>
4

2 回答 2

1

=在 html 中缺少一个,它不会形成名称测试..并且 javascript 找不到名称测试的形式,并引发错误...检查控制台日志以查找 javascript 错误..

<form name"test" action="roads.php" onsubmit="return validateEmail();" method="post">

<form name="test" action="roads.php" onsubmit="return validateEmail();" method="post">

工作代码

于 2012-08-21T05:11:05.930 回答
0

这是访问表单及其字段的更好方法 - 还记得返回 true

假设<form id="testform" action="roads.php" method="post">

我们可以使用不显眼的脚本

<script>
window.onload=function() {
  document.getElementById("testform").onsubmit=function () {
    var email=this.email.value;
    var atpos=x.indexOf("@");
    var dotpos=x.lastIndexOf(".");
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length) {
      alert("Not a valid e-mail address");
      return false;
    }
    return true;
  }
}
</script>
于 2012-08-21T05:23:39.343 回答