即使验证失败,表单也会提交
Form submits even if validation fails
我只是在学习Javascript,所以如果我的问题看起来很傻,请耐心等待。。。
我需要创建一个html表单,并对字段进行一些验证。不管字段是否正确填写,当点击提交按钮时,我都会得到一个错误404。如果我复制/粘贴别人做同样事情的代码,它会很好地工作。文件"somepage.php"不存在,但对于其他人的代码也不存在。
我在CodeLobster中对它进行了编码,然后在Notepad++中进行了编码。没有变化。
这是HTML文件,下面是javascript文件的内容。。。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Registration Form</title>
<script type="text/javascript" src="js.js"></script>
</head>
<body>
<form action="somepage.php" onsubmit="checkLogin()" method="post" >
Name: <input type="text" name="name" id="nameF" /><br />
Email: <input type="text" name="email" id="emailF" /><br />
<input type="submit" value="Submit" name="submit" />
</form>
</body>
</html>
function checkLogin()
{
var emailPattern = /^'w+(['.'-]?'w+)*@'w+(['.'-]?'w+)*'.[a-z]{2,6}$/i;
var email = document.getElementById('emailF').value;
var name = document.getElementById('name').value;
if (email == "")
{
alert("Please enter valid email address.");
document.getElementById('emailF').select();
document.getElementById('emailF').focus();
return false;
} else if (name == "") {
alert("Please enter your name.");
document.getElementById('nameF').select();
document.getElementById('nameF').focus();
return false;
} else if (!emailPattern.test(email)) {
alert("The email address entered is invalid");
document.getElementById('emailF').select();
document.getElementById('emailF').focus();
return false;
}
return true;
}
您的问题不在于页面丢失(您已经知道了)。问题是,即使验证失败,表单仍然会提交。
form.onsubmit
方法应返回false
以阻止表单提交。换句话说,这个:
<form action="somepage.php" onsubmit="checkLogin()" method="post" >
应为:
<form action="somepage.php" onsubmit="return checkLogin()" method="post" >
当然,如果表单确实进行了验证,它将正确地进入somepage.php
,此时您将收到404
错误,因为页面不存在。
相关文章:
- Jquery提交表单而不刷新
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 每次提交表单时都会重新加载网页
- Razor中的自动提交表单
- 使用 JavaScript 自动提交表单
- 点击相同的按钮打开模型,然后提交表单
- 添加和删除隐藏字段数组中的值,而不提交表单
- 使用Ajax提交表单
- jQuery:使用“jQuery验证”后无法提交表单's远程验证
- 如何在不重新加载的情况下提交表单,并使用Node+Express将数据传递回同一页面
- 有登录表单时无法提交表单
- 带有select的jquery提交表单不起作用
- 如何防止回车键提交表单,但仍然允许回车工作
- 使用按钮和单选按钮提交表单,但始终使用相同的值
- 在提交表单之前确定重复值
- 如何创建动态ajax提交表单
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 如何使用jQueryAjax使用动态html输入texbox提交表单
- 当触发下拉列表的onchange事件时,使用JavaScript提交表单
- 提交表单后,Watir文本框输入未持续(重置为以前的文本框输入)