转自:http://jackaudrey.blog.163.com/blog/static/1314217882010590041833/

在页面中有多个input type="text"的文本输入框的情况下没有问题,但是当页面中有只有一个文本框的情况下(),就会出现此问题.

后来在form 中添加:onsubmit="return false;"问题终于解决。

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

下边对“防止表单自动提交,以及submit和button提交表单”进行了些总结,希望对大家有些用(如果有不当的地方请指出)。

  1. < html >
  2. < script >
  3.  
  4. function exec(p){
  5. document.frm.action = p ;
  6. document.frm.submit();
  7. }
  8. function exec1(p){
  9. document.frm.action = p ;
  10. document.frm.submit();
  11. document.frm1.submit();//IE页面定位到最后一个提交的action所对应的页面
  12. alert("haha");//submit()后边的语句正常执行,这里弹出框文字”haha“
  13. }
  14. </ script >
  15. < head >
  16. < h1 > 总结:FORM onSubmit = "return false" 防止表单自动提交,以及submit和button提交表单的区别 </ h1 >
  17. < head >
  18. < body >
  19. <!-- (1) 下边的写法使得表单frm能够自动提交
  20. 下边的这个form,将鼠标点进的文本框中然后按键盘的回车键,则页面自动进入百度页面:http://www.baidu.com
  21. < form name = 'frm' action = "http://www.baidu.com" >
  22. < input type = "text" name = "userName" />
  23. < input type = "hidden" name = "userName1" />
  24. </ form >
  25.  
  26. 注意:将上边的“< input type = "hidden" name = "userName1" /> ”去掉或者增加上,都不能改变页面的自动提交!
  27. -->
  28.  
  29. <!-- (2)而同样的写法,进行如上的操作,却不会提交
  30. 可能是有两个文本输入框的缘故吧(注意:上边仅有一个)。
  31. 那如果一个页面中有多个from会怎样??后边有相关试验。
  32.  
  33. < form name = 'frm' action = "http://www.baidu.com" >
  34. < input type = "text" name = "userName" />
  35. < input type = "text" name = "pass" />
  36. </ form >
  37. -->
  38.  
  39. <!-- (3)下面试试,同一个页面有多个from的情况
  40. 这里先试试多个form、每个form中仅有一个文本输入框
  41. < form name = 'frm1' action = "http://www.baidu.com" >
  42. < input type = "text" name = "userName" />
  43. < input type = "hidden" name = "userName1" />
  44. </ form >
  45. < form name = 'frm2' action = "http://www.google.cn/" >
  46. < input type = "text" name = "userName" />
  47. </ form >
  48. 经试验,每个from中的文本输入框都具有自动提交的能力。
  49. -->
  50.  
  51. <!-- (4)下面试试,同一个页面有多个from的情况
  52. 这里先试试多个form、有的form中仅有一个文本输入框,有的form中则有多个文本输入框
  53. < form name = 'frm1' action = "http://www.baidu.com" >
  54. < input type = "text" name = "userName" />
  55. < input type = "text" name = "passWord" />
  56. </ form >
  57. < form name = 'frm2' action = "http://www.google.cn" >
  58. < input type = "text" name = "userName" />
  59. </ form >
  60. < form name = 'frm3' action = "http://www.yahoo.com" >
  61. < input type = "text" name = "userName" />
  62. < input type = "text" name = "passWord" />
  63. </ form >
  64. 经试验,只有 frm2 具有自动提交的特性。
  65.  
  66. 看来:只要页面中的某个表单中仅有一个文本输入框,则其页面就具有自动提交的特性了。
  67. -->
  68. <!--(5)如何防止页面自动提交?!
  69. 很简单!只要在from 中加上 onSubmit = "return false;" 就OK了!
  70. < form name = 'frm1' action = "http://www.baidu.com" >
  71. < input type = "text" name = "userName" />
  72. < input type = "text" name = "passWord" />
  73. </ form >
  74. < form name = 'frm2' action = "http://www.google.cn" onSubmit = "return false;" >
  75. < input type = "text" name = "userName" />
  76. </ form >
  77.  
  78. 呵呵,经过onSubmit = "return false;" 改造后,frm2不再自动提交了!
  79. -->
  80. <!--(6)下边看看input type = "submit" 对提交表单的影响
  81.  
  82. 这里不拿仅有一个文本框的form进行测试了(如果不用onSubmit = "return false;" ,它是自动提交的)
  83. < form name = 'frm1' action = "http://www.baidu.com" >
  84. < input type = "text" name = "userName" />
  85. < input type = "text" name = "passWord" />
  86. < input type = "submit" value = "提交1" />
  87. </ form >
  88. < form name = 'frm2' action = "http://www.google.com" >
  89. < input type = "text" name = "userName" />
  90. < input type = "text" name = "passWord" />
  91. < input type = "submit" value = "提交2" />
  92. </ form >
  93. 则,分别鼠标点击frm1、frm2中的文本框并按回车后,会根据各自的action来进入不同的页面
  94. -->
  95. <!--(7)下边看看input type = "button" 对提交表单的影响
  96. < form name = 'frm1' action = "http://www.baidu.com" >
  97. < input type = "text" name = "userName" />
  98. < input type = "text" name = "passWord" />
  99. < input type = "button" value = "提交1" />
  100. </ form >
  101. < form name = 'frm2' action = "http://www.google.com" >
  102. < input type = "text" name = "userName" />
  103. < input type = "text" name = "passWord" />
  104. < input type = "button" value = "提交2" />
  105. </ form >
  106.  
  107. 哈哈,分别鼠标点击frm1、frm2中的文本框并按回车后,都没有反应!看来button这样是不能提交表单的
  108. -->
  109.  
  110. <!--(8)使用 "button" 来提交表单
  111.  
  112. < form name = 'frm' action = "http://www.baidu.com" >
  113. < input type = "text" name = "userName" />
  114. < input type = "text" name = "" />
  115. < input type = "button" value = "提交1" onclick = "exec('http://www.google.com')" />
  116. </ form >
  117.  
  118. userName 、passWord处都填写数据,点击button。
  119. OK!连上google了,IE地址栏显示:http://www.google.com/?userName = 1passWord =1
  120. -->
  121. <!-- (9)使用 "button" 来提交表单——参考js exec1()中的相关注释
  122.  
  123. -->
  124. < form name = 'frm' action = "http://www.google.com" >
  125. < input type = "text" name = "userName" />
  126. < input type = "text" name = "passWord" />
  127. < input type = "button" value = "提交1" onclick = "exec1('http://www.google.com')" />
  128. </ form >
  129. < form name = 'frm1' action = "http://www.hao123.com" >
  130. < input type = "text" name = "userName" />
  131. </ form >
  132.  
  133. </ body >
  134. </ 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>

Html 中表单提交的一些知识总结——防止表单自动提交,以及submit和button提交表单的区别的更多相关文章

  1. FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别

    在页面中有多个input type="text"的文本输入框的情况下没有问题,但是当页面中有只有一个文本框的情况下(),就会出现此问题. 后来在form 中添加:onsubmit= ...

  2. submit和button提交表单的区别

    <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...

  3. 在javascript中关于submit和button提交表单区别

    submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上. ...

  4. (转)在javascript中关于submit和button提交表单区别

      原文来自:http://www.jb51.net/article/42236.htm   submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和b ...

  5. js和jq使用submit方法无法提交表单

    昨天,在做一个表单异步提交内容的时候,遇到很奇怪的问题,submit()方法无法进行提交,每次提交都是把 当前给刷新了,网络抓包发现,每次都是 get方式去获取 当前页面,完全没有post 请求,想着 ...

  6. 表单验证提交——submit与button

    之前做东西接触过表单验证提交,但是都是为了完成工作,做完就做完了,没有注过表单验证提交有几种方法,各方法都有啥区别.今天瞎折腾了一下,对他们研究了一下,如下是我个人的理解: submit: 从字面上看 ...

  7. form表单的两种提交方式,submit和button的用法

    1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写:有两种方法,一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的 ...

  8. 触发form表单的两种提交方式,submit和button的用法

    1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写:有两种方法,一种是用submit提交.一种是用button提交. 方法一: 在jsp的前端页面 ...

  9. 如何不使用 submit 按钮来提交表单?

      如果我们不想用 submit 按钮来提交表单,我们也可以用超链接来提交,我们可以这样写代码: <a href=”javascript: document.myform.submit ();” ...

随机推荐

  1. Android中的selector

    android背景选择器selector用法汇总 (2011-04-19 13:40:00) 转载▼ 标签: android selector 背景选择器 it 分类: java/vb/Android ...

  2. 小飞淙在博客上的第一天——NOIP201505转圈游戏

    原本我是在word文档上写这种东西的,在杨老师的“强迫”下,我开始写了博客. 这是我在博客上的第一天,就先来个简单的,下面请看题: 试题描述  有n个小伙伴(编号从0到n-1)围坐一圈玩游戏.按照顺时 ...

  3. 自定义控件之--组合控件(titlebar)

    自定义控件相关知识从郭霖等大神身上学习,这里只不过加上自己的理解和实践,绝非抄袭.   组合控件是自定义控件中最简单的方式,但是是入门自定义控件和进阶的过程: 那么常见的组合控件有那些? 比如titl ...

  4. Windows线程同步(上)

    先介绍一个创建线程的API,参考:https://msdn.microsoft.com/en-us/library/windows/desktop/ms682453%28v=vs.85%29.aspx ...

  5. LoadRunner性能测试指标分析

    Memory: ·Available Mbytes 简述:可用物理内存数.如果Available Mbytes的值很小(4 MB或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存. 参考值 ...

  6. css3-多列显示文字

    -------------------------- <style>            #demo{                margin: 20px auto;         ...

  7. eclipse使用外部maven时multiModuleProjectDirectory错误解决

    错误提醒: -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment vari ...

  8. java IO类图

  9. 求最大公约数(GCD)的两种算法

    之前一直只知道欧几里得辗转相除法,今天学习了一下另外一种.在处理大数时更优秀的算法--Stein 特此记载 1.欧几里得(Euclid)算法 又称辗转相除法,依据定理gcd(a,b)=gcd(b,a% ...

  10. js获取url传递参数,js获取url?号后面的参数

    方法一.正则表达式 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + " ...