在提交

时间:2016-05-08 13:50:21

标签: javascript html forms servlets

我已经用HTML创建了一个表单,并且在每个字段上都使用了onblur事件,并且它工作正常。问题是,当我点击提交按钮(将数据发送到servlet)时,即使数据无效,也会提交数据。这是一个例子。

<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>

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

有一个“onsubmit”事件,允许您控制表单提交。使用它来调用验证函数,然后才决定是否允许用户提交表单。 http://www.htmlcodetutorial.com/forms/_FORM_onSubmit.html

如果您希望它阻止表单提交,您必须按以下方式使用它:

<form onsubmit="return check()">

答案 1 :(得分:0)

使用

  

<input class="button" type="button">

并发出如下的onclick事件:

  

<input class="button" type="button" onclick="this.submit()">

所以你可以在分配数据之前操纵数据。