使用JavaScript验证HTML表单输入
可能重复:
在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>
你缺少a =
在html中,这不会形成名称测试..and javascript找不到名称测试的形式,并抛出错误...检查控制台日志中的JavaScript错误..
<form name"test" action="roads.php" onsubmit="return validateEmail();" method="post">
<form name="test" action="roads.php" onsubmit="return validateEmail();" method="post">
工作代码
这是访问表单及其字段的更好方法 - 也请记住返回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>
链接地址: http://www.djcxy.com/p/16513.html