FORM中使用onSubmit="return false"防止表單自動提交,以及submit和button提交表單的區別

在頁面中有多個input type="text"的文本輸入框的狀況下沒有問題,可是當頁面中有隻有一個文本框的狀況下(),就會出現此問題.javascript

 

後來在form 中添加:onsubmit="return false;"問題終於解決。html

<form name="frm"  method="post" onsubmit="return false;">java

 

 

下邊對「防止表單自動提交,以及submit和button提交表單」進行了些總結,但願對你們有些用(若是有不當的地方請指出)。web

<html>
<script> 面試

function exec(p){
    document.frm.action = p;
    document.frm.submit();
}
function exec1(p){
    document.frm.action = p;
    document.frm.submit();
    document.frm1.submit();//IE頁面定位到最後一個提交的action所對應的頁面
    alert("haha");//submit()後邊的語句正常執行,這裏彈出框文字」haha「
}
</script>
<head>
<h1>總結:FORM onSubmit="return false"防止表單自動提交,以及submit和button提交表單的區別</h1>
<head>
<body>
<!-- (1) 下邊的寫法使得表單frm可以自動提交 
下邊的這個form,將鼠標點進的文本框中而後按鍵盤的回車鍵,則頁面自動進入百度頁面:http://www.baidu.com
<form name='frm'  action="http://www.baidu.com"> 
    <input type="text" name= "userName"/>
    <input type="hidden" name= "userName1"/>
</form> post

注意:將上邊的「<input type="hidden" name= "userName1"/>」去掉或者增長上,都不能改變頁面的自動提交!
--> 測試

<!-- (2)而一樣的寫法,進行如上的操做,卻不會提交
多是有兩個文本輸入框的緣故吧(注意:上邊僅有一個)。
那若是一個頁面中有多個from會怎樣??後邊有相關試驗。 google

<form name='frm'  action="http://www.baidu.com"> 
    <input type="text" name= "userName"/>
    <input type="text" name= "pass"/>
</form>
--> orm

<!-- (3)下面試試,同一個頁面有多個from的狀況
 這裏先試試多個form、每一個form中僅有一個文本輸入框
<form name='frm1' action="http://www.baidu.com"> 
    <input type="text" name= "userName"/>
    <input type="hidden" name= "userName1"/>
</form>
<form name='frm2'  action="http://www.google.cn/"> 
    <input type="text" name= "userName"/>
</form>
經試驗,每一個from中的文本輸入框都具備自動提交的能力。
--> htm

 

<!-- (4)下面試試,同一個頁面有多個from的狀況
 這裏先試試多個form、有的form中僅有一個文本輸入框,有的form中則有多個文本輸入框
<form name='frm1' action="http://www.baidu.com"> 
    <input type="text" name= "userName"/>
    <input type="text" name= "passWord"/>
</form>
<form name='frm2' action="http://www.google.cn"> 
    <input type="text" name= "userName"/>
</form>
<form name='frm3' action="http://www.yahoo.com"> 
    <input type="text" name= "userName"/>
    <input type="text" name= "passWord"/>
</form>
經試驗,只有 frm2 具備自動提交的特性。

看來:只要頁面中的某個表單中僅有一個文本輸入框,則其頁面就具備自動提交的特性了。
-->
<!--(5)如何防止頁面自動提交?!
很簡單!只要在from 中加上 onSubmit="return false;"就OK了!
<form name='frm1' action="http://www.baidu.com"> 
    <input type="text" name= "userName"/>
    <input type="text" name= "passWord"/>
</form>
<form name='frm2' action="http://www.google.cn"  onSubmit="return false;"> 
    <input type="text" name= "userName"/>
</form>

呵呵,通過onSubmit="return false;" 改造後,frm2再也不自動提交了!
-->
<!--(6)下邊看看input type="submit"對提交表單的影響

這裏不拿僅有一個文本框的form進行測試了(若是不用onSubmit="return false;" ,它是自動提交的)
<form name='frm1' action="http://www.baidu.com">
    <input type="text" name= "userName"/>
    <input type="text" name= "passWord"/>
    <input type="submit"  value="提交1"/>
</form>
<form name='frm2' action="http://www.google.com">
    <input type="text" name= "userName"/>
    <input type="text" name= "passWord"/>
    <input type="submit"  value="提交2"/>
</form>
則,分別鼠標點擊frm一、frm2中的文本框並按回車後,會根據各自的action來進入不一樣的頁面
-->
<!--(7)下邊看看input type="button"對提交表單的影響
<form name='frm1' action="http://www.baidu.com">
    <input type="text" name= "userName"/>
    <input type="text" name= "passWord"/>
    <input type="button"  value="提交1"/>
</form>
<form name='frm2' action="http://www.google.com">
    <input type="text" name= "userName"/>
    <input type="text" name= "passWord"/>
    <input type="button"  value="提交2"/>
</form>

哈哈,分別鼠標點擊frm一、frm2中的文本框並按回車後,都沒有反應!看來button這樣是不能提交表單的
-->

<!--(8)使用 "button" 來提交表單

<form name='frm' action="http://www.baidu.com">
    <input type="text" name= "userName"/>
    <input type="text" name= ""/>
    <input type="button"  value="提交1" onclick="exec('http://www.google.com')"/>
</form>

userName 、passWord處都填寫數據,點擊button。
OK!連上google了,IE地址欄顯示:http://www.google.com/?userName=1passWord=1
-->
<!-- (9)使用 "button" 來提交表單——參考js exec1()中的相關注釋   

-->
<form name='frm' action="http://www.google.com">
    <input type="text" name= "userName"/>
    <input type="text" name= "passWord"/>
    <input type="button"  value="提交1" onclick="exec1('http://www.google.com')"/>
</form>
<form name='frm1' action="http://www.hao123.com">
    <input type="text" name= "userName"/>
</form>

</body>
</html>
總結期間找了些關於onsubmit="return false;"的文章,做爲資料也貼在下邊。

URL:http://bbsanwei.javaeye.com/blog/271547

onSubmit的使用
  在web開發中,咱們常常會遇到,一點回車鍵表單就本身提交的問題,能不能禁用回車鍵呢,答案是確定的. 


Html代碼 
<from action="" method="post" onSubmit="return false">  
...............   
</from>  


若是想在表單提交時,進行驗證 

Html代碼 
<html>  
<head>  
<script lanuage="javascript">  
  function check()   
{   
//驗證不經過時   
return false;   
}   
</script>  
</head>  
<body>  
<from action="" method="post" onSubmit="return check()">  
...............   
</from>  
</body>  
</html>  

<html>
<head>
<script lanuage="javascript">
  function check()
{
//驗證不經過時
return false;
}
</script>
</head>
<body>
<from action="" method="post" onSubmit="return check()">
...............
</from>
</body>
</html>

 

這樣就會對錶單進行驗證再進行提交 

要注意的是,千萬不能寫成 

Html代碼 
<from action="" method="post" onSubmit="check()">  
...............   
</from>  


由於check()不經過後會返回false, 由於onsubmit屬性就像是<form>這個html對象的一個方法名,其值(一字符串)就是其方法體,默認返回true,因此仍是至關於驗證經過 
記得對錶單驗證必定要寫成這樣 

Html代碼  <from action="" method="post" onSubmit="return check()">   ...............    </from>

相關文章
相關標籤/搜索