Javascript 提交前验证所有表单数据
我已经用HTML创建了一个表单,并在每个字段上使用了onblur事件,它工作得非常好。问题是,当我单击submit按钮(将数据发送到servlet)时,即使数据无效,也会提交数据。这里有一个例子Javascript 提交前验证所有表单数据,javascript,html,forms,servlets,Javascript,Html,Forms,Servlets,我已经用HTML创建了一个表单,并在每个字段上使用了onblur事件,它工作得非常好。问题是,当我单击submit按钮(将数据发送到servlet)时,即使数据无效,也会提交数据。这里有一个例子 <html> <head> <script> function check() { if(checkName()==true) return true; else{ alert('vhvh'); retu
<html>
<head>
<script>
function check()
{
if(checkName()==true)
return true;
else{
alert('vhvh');
return false;
}
}
function checkName()
{
var uname=document.enq.Name.value;
var letters = /^[A-Za-z, ]+$/;
if(uname.match(letters))
{
document.getElementById('Name').style.borderColor = "black";
return true;
}
else
{
document.getElementById('Name').style.borderColor = "red";
//alert('Username must have alphabet characters only');
//uname.focus();
return false;
}
}
</script>
</head>
<body>
<form name="enq" method="post" action="Enquiry" onsubmit="check()">
<input class="textbox" id="Name"style="margin-top:10px;font-size:16px;" type="text" name="Name" placeholder="Full Name" onblur="checkName()" required /><br><br>
<input class="button" type="submit">
</form>
</body>
</html>
函数检查()
{
如果(checkName()==true)
返回true;
否则{
警报(“VH”);
返回false;
}
}
函数checkName()
{
var uname=document.enq.Name.value;
变量字母=/^[A-Za-z,]+$/;
如果(不匹配(字母))
{
document.getElementById('Name').style.borderColor=“黑色”;
返回true;
}
其他的
{
document.getElementById('Name').style.borderColor=“红色”;
//警报('用户名必须只有字母字符');
//uname.focus();
返回false;
}
}
如何解决此问题?有一个“onsubmit”事件,允许您控制表单提交。使用它来调用验证函数,然后才决定是否允许用户提交表单。
如果要阻止表单提交,必须按以下方式使用它:
<form onsubmit="return check()">
使用
然后放置一个onclick事件,如下所示:
因此,您可以在限制数据之前对其进行操作。谢谢@Ni。现在我已经创建了一个函数,它将检查数据是否有效,并且工作得很好。但我仍然无法限制它向servlet提交数据。这是我的新方法的代码。函数check(){if(checkName()==true&&checkNumber()==true&&ValidateEmail()==true)alert('true');else alert('false');}@ParveenKumar如果函数返回false,表单将不会提交。@ParveenKumar我将答案中的链接更改为更好的站点它不是wokring,即使返回false,它也在提交数据。请将新代码添加到您的问题中,以便我可以提供帮助