当我从onsubmit返回false时,HTML表单仍然提交

HTML form still submit when I return false from onsubmit?

本文关键字:表单 HTML 提交 onsubmit 返回 false      更新时间:2023-09-26

以下是HTML表单:

 <form id="form1" name="form1" action="toSQL.php" method="get" accept-charset="utf-8"   onsubmit="return submitTest();">
<p><input type="text" name="Cliname" id="textfield" maxlength = "10" /></p>
<p><textarea name="message" id="message" maxlength = "20" ></textarea>
<input type="submit" value="submit" id="btn"/>
</form>

这里是js:

<script type="text/javascript" > 
function submitTest() { 
   if ( form1.textfield.value == "" ) {
       alert( "enter your name!!" ) ;
       form1.name.focus();
       return false ;
   } 
   if (form1.message.value == "" ) {
       alert( "type the content!!" ) ;
       form1.message.focus();
      return false ;
   } 
} 
</script> 
显示了

alert,但它仍然将表单发送给sql。我不知道

由于代码中有错误而提交的表单。浏览器无法在form1.name.focus();上找到id为name的窗体子窗体。修改为form1.textfield.focus();

在普通(非jquery)事件处理程序中,返回false不会阻止事件冒泡。

详情请参考event.preventDefault() vs. return false

你也可以使用required为HTML5

<input type="text" required name="Cliname" id="textfield" maxlength = "10" />