在頁面中有多個input type="text"的文本輸入框的情況下沒有問題,但是當頁面中有隻有一個文本框的情況下(),就會出現此問題. 後來在form 中添加:onsubmit="return false;"問題終於解決。 <form name="frm" method="post" onsubm ...
在頁面中有多個input type="text"的文本輸入框的情況下沒有問題,但是當頁面中有隻有一個文本框的情況下(),就會出現此問題.
後來在form 中添加:onsubmit="return false;"問題終於解決。
<form name="frm" method="post" onsubmit="return false;">
下邊對“防止表單自動提交,以及submit和button提交表單”進行了些總結,希望對大家有些用(如果有不當的地方請指出)。
<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>
註意:將上邊的“<input type="hidden" name= "userName1"/>”去掉或者增加上,都不能改變頁面的自動提交!
-->
<!-- (2)而同樣的寫法,進行如上的操作,卻不會提交
可能是有兩個文本輸入框的緣故吧(註意:上邊僅有一個)。
那如果一個頁面中有多個from會怎樣??後邊有相關試驗。
<form name='frm' action="http://www.baidu.com">
<input type="text" name= "userName"/>
<input type="text" name= "pass"/>
</form>
-->
<!-- (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中的文本輸入框都具有自動提交的能力。
-->
<!-- (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>
則,分別滑鼠點擊frm1、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>
哈哈,分別滑鼠點擊frm1、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>