`

防止表单自动提交,以及submit和button提交表单的区别

阅读更多

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

防止表单自动提交,以及submit和button提交表单的区别   

2010-06-09 00:00:41 |  分类: JavaScript | 字号   订阅

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

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

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

下边对“防止表单自动提交,以及submit和button提交表单”进行了些总结,希望对大家有些用(如果有不当的地方请指出)。 
Html代码 
  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.   
  52. <!-- (4)下面试试,同一个页面有多个from的情况   
  53. 这里先试试多个form、有的form中仅有一个文本输入框,有的form中则有多个文本输入框   
  54. < form   name = 'frm1'   action = "http://www.baidu.com" >    
  55.     < input   type = "text"   name "userName" />    
  56.     < input   type = "text"   name "passWord" />    
  57. </ form >    
  58. < form   name = 'frm2'   action = "http://www.google.cn" >    
  59.     < input   type = "text"   name "userName" />    
  60. </ form >    
  61. < form   name = 'frm3'   action = "http://www.yahoo.com" >    
  62.     < input   type = "text"   name "userName" />    
  63.     < input   type = "text"   name "passWord" />    
  64. </ form >    
  65. 经试验,只有 frm2 具有自动提交的特性。   
  66.   
  67. 看来:只要页面中的某个表单中仅有一个文本输入框,则其页面就具有自动提交的特性了。   
  68. -->    
  69. <!--(5)如何防止页面自动提交?!   
  70. 很简单!只要在from 中加上 onSubmit = "return false;" 就OK了!   
  71. < form   name = 'frm1'   action = "http://www.baidu.com" >    
  72.     < input   type = "text"   name "userName" />    
  73.     < input   type = "text"   name "passWord" />    
  74. </ form >    
  75. < form   name = 'frm2'   action = "http://www.google.cn"   onSubmit = "return false;" >    
  76.     < input   type = "text"   name "userName" />    
  77. </ form >    
  78.   
  79. 呵呵,经过onSubmit = "return false;"  改造后,frm2不再自动提交了!   
  80. -->    
  81. <!--(6)下边看看input type = "submit" 对提交表单的影响   
  82.   
  83. 这里不拿仅有一个文本框的form进行测试了(如果不用onSubmit = "return false;"  ,它是自动提交的)   
  84. < form   name = 'frm1'   action = "http://www.baidu.com" >    
  85.     < input   type = "text"   name "userName" />    
  86.     < input   type = "text"   name "passWord" />    
  87.     < input   type = "submit"   value = "提交1" />    
  88. </ form >    
  89. < form   name = 'frm2'   action = "http://www.google.com" >    
  90.     < input   type = "text"   name "userName" />    
  91.     < input   type = "text"   name "passWord" />    
  92.     < input   type = "submit"   value = "提交2" />    
  93. </ form >    
  94. 则,分别鼠标点击frm1、frm2中的文本框并按回车后,会根据各自的action来进入不同的页面   
  95. -->    
  96. <!--(7)下边看看input type = "button" 对提交表单的影响   
  97. < form   name = 'frm1'   action = "http://www.baidu.com" >    
  98.     < input   type = "text"   name "userName" />    
  99.     < input   type = "text"   name "passWord" />    
  100.     < input   type = "button"   value = "提交1" />    
  101. </ form >    
  102. < form   name = 'frm2'   action = "http://www.google.com" >    
  103.     < input   type = "text"   name "userName" />    
  104.     < input   type = "text"   name "passWord" />    
  105.     < input   type = "button"   value = "提交2" />    
  106. </ form >    
  107.   
  108. 哈哈,分别鼠标点击frm1、frm2中的文本框并按回车后,都没有反应!看来button这样是不能提交表单的   
  109. -->    
  110.   
  111. <!--(8)使用 "button" 来提交表单   
  112.   
  113. < form   name = 'frm'   action = "http://www.baidu.com" >    
  114.     < input   type = "text"   name "userName" />    
  115.     < input   type = "text"   name "" />    
  116.     < input   type = "button"   value = "提交1"   onclick = "exec('http://www.google.com')" />    
  117. </ form >    
  118.   
  119. userName 、passWord处都填写数据,点击button。   
  120. OK!连上google了,IE地址栏显示:http://www.google.com/?userName = 1passWord =1   
  121. -->    
  122. <!-- (9)使用 "button" 来提交表单——参考js exec1()中的相关注释     
  123.  
  124. -->    
  125. < form   name = 'frm'   action = "http://www.google.com" >    
  126.     < input   type = "text"   name "userName" />    
  127.     < input   type = "text"   name "passWord" />    
  128.     < input   type = "button"   value = "提交1"   onclick = "exec1('http://www.google.com')" />    
  129. </ form >    
  130. < form   name = 'frm1'   action = "http://www.hao123.com" >    
  131.     < input   type = "text"   name "userName" />    
  132. </ form >    
  133.   
  134. </ body >    
  135. </ 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>
分享到:
评论

相关推荐

    JavaScript在form表单中使用button按钮实现submit提交方法

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

    submit和button的区别

    的一种,它把提交这个动作自动集 成了。 如果表单在点击提交按钮后需要用 JS 进行处理 (包括输入验证) 后再提交的话, 通常都必须把 submit 改成 button ,即取消其自动提交的行为,否则,将会造成 提交两次的...

    submit表单提交,onsubmit验证拦截

    submit表单提交,onsubmit验证拦截 免去了用button按钮click点击事件ajax请求

    JS button按钮实现submit按钮提交效果

    今天在使用表单是同时使用POST...然而form表单的 submit 且一旦提交则全部提交,所以想到的实现方法就是 使用button实现,怎么实现呢?下面小编给大家分享JS button按钮实现submit按钮提交效果,感兴趣的朋友参考下吧

    在javaScript中关于submit和button的区别介绍

    submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上,submit会提交表单,button不会提交表单. 两者主要区别在于: submit默认为form提交,可以提交表单

    webform_submit_button:用于Drupal的webform_submit_button模块

    该模块创建一个新的Webform组件,称为Submit_button。 该组件可以像其他任何Web表单一样放置在Web表单中。 它本身没有有意义的设置。 它成为由Webforms生成的实际提交按钮的占位符。 在hook_form_alter上,占位符被...

    JS中type="button"和type="submit"的区别

    Submit是专门用于提交表单的Button,与Button的区别主要有两点:type=button 就单纯是按钮功能,type=submit 是发送表单。下面通过本文给大家分享JS中type="button"和type="submit"的区别,感兴趣的的朋友一起看看吧

    form.submit()不能提交表单的错误原因及解决方法

    button的id不要设置为submit,否则可能会引起混淆,导致表单的submit()方法不能提交表单

    在IE的模式窗口中,通过表单提交到本页,并通过javascript获取提交的参数

    博文链接:https://clarancepeng.iteye.com/blog/112040

    浅析一个表单多个Submit按钮的简单实现方法

    Submit按钮是实现表单内容提交的一个至关重要的对象。本文在简单介绍一个表单单个Submit按钮的提交处理方法的基础上,重点讨论了一个表单多个Submit按钮的三种简单而常用的实现方法

    前端与移动开发之表单

    ⑧submit(可以把表单域里面元素提交给后台)和reset(还原表单中数据到初始状态)里面通过value属性可以改变文字 5.表单标签 都应该在form里面 增加用户体验 帮助表单元素提高作用域 (1)...

    巧用js提交表单轻松解决一个页面有多个提交按钮

    代码如下: ”javascript” name=”code”&gt;function check(txt){ $j(“form”).submit(function(){ if($txt==”提交”){ this.action=”doAddMessage.action?button=提交”; this.submit(); }else{ this.action=”...

    input submit、button和回车键提交数据详解

    最近项目中用了很多的表单提交,发现input、button、submit甚至回车键都可以引发表单提交,下面将分别给大家讲述下他们在使用中的区别。

    javascript实现点击提交按钮后显示loading的方法

    主要介绍了javascript实现点击提交按钮后显示loading的方法,涉及javascript动态设置页面元素样式的相关技巧,需要的朋友可以参考下

    JS中type=”button”和type=”submit”的区别

    Submit是专门用于提交表单的Button,与Button的区别主要有两点:  type=button 就单纯是按钮功能   type=submit 是发送表单  (1)Submit将表单提交(form.submit())作为其onclick后的默认事件,Button并非如此  ...

    用js提交表单解决一个页面有多个提交按钮的问题

    用js提交表单解决一个页面有多个提交按钮的问题,主要是判断是否为提交文本,然后再执行相应的动作,比较简单。 &lt;pre class=javascript name=code&gt;function check(txt){ $j(form).submit(function(){ if($txt==提交)...

    input、button的不同type值在ajax提交表单时导致的陷阱

    今天在做利用connection 作表单提交过程中发现,标签”input”跟”botton”中的type属性设置原来也是一门学问。 在开发过程中,为了使html代码更加整洁,我首先利用YAHOO.util.Event.addListener(obj, “click”, ...

    js css面试题

    如果表单在点击提交按钮后需要用JS进行处理(包括输入验证)后再提交的话,通常都必须把submit改成button, 即取消其自动提交的行为,否则,将会造成提交两次的效果,对于动态网页来说,也就是对数据库操作两次。

Global site tag (gtag.js) - Google Analytics