`

防止表单自动提交,以及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的...

    html中submit和button的区别

    在探讨HTML中`submit`和`button`的区别之前,我们首先需要明确这两个元素的基本概念以及它们在网页设计和开发中的作用。HTML,全称为HyperText Markup Language,是用于创建网页的标准标记语言。在HTML中,`&lt;input&gt;`...

    javascript方式防止表单重复提交

    JavaScript作为客户端脚本语言,可以通过多种策略来防止用户意外或恶意地多次提交表单。以下是一些关键的知识点: 1. **禁用提交按钮**:最简单的预防方法是在用户点击提交按钮后立即将其禁用。这可以通过监听`...

    submit和button的区别

    1. `submit`会自动提交表单数据,而`button`则需要通过JavaScript来触发提交。 2. 使用`submit`时,如果需要进行JS验证,需在`onClick`事件中返回`true`或`false`。 3. `button`更适合用于执行用户自定义的操作,如...

    submit表单提交,onsubmit验证拦截

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

    js表单提交和submit提交的区别实例分析

    总结来说,表单提交和submit按钮提交主要区别在于事件触发的时机和方式,以及不同浏览器的兼容性问题。了解这些差异并采取相应措施,可以帮助开发者更有效地利用JavaScript进行Web开发,并确保应用程序的跨浏览器...

    js实现定时提交表单

    在在线考试系统中,定时提交表单是一个关键功能,它确保考生在规定时间结束后自动提交试卷,防止作弊并保证考试公平性。下面将详细介绍如何使用JavaScript实现定时提交表单的功能。 首先,我们需要理解表单(Form)...

    修改禁止多次重复提交

    &lt;button type="submit" id="submitBtn"&gt;提交&lt;/button&gt; document.getElementById('myForm').addEventListener('submit', function(event) { event.preventDefault(); // 阻止默认的表单提交行为 var btn = ...

    关于layui表单中按钮自动提交的解决方法

    在使用layui框架构建Web应用时,常常会遇到表单中按钮自动提交的问题,这可能导致不必要的数据提交或页面跳转。本文将详细介绍如何解决layui表单中按钮自动提交的问题,以便更好地控制表单行为。 首先,我们需要...

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

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

    jquery实现弹窗表单填写提交

    本资源重点展示了如何利用jQuery来实现弹窗表单的填写和提交功能,这对于用户交互和数据收集至关重要。下面将详细阐述这个过程中的关键知识点。 首先,jQuery弹窗通常通过两种方式实现:一种是使用插件,如jQuery ...

    用image来提交form不想使用button提交form.docx

    如果不需要这些坐标,可以在`onsubmit`事件中阻止默认行为,防止表单被自动提交两次。 2. **JavaScript处理**: 可以使用JavaScript来监听用户的点击事件,并在合适的时候提交表单。为了避免双重提交,我们需要...

    使用jQuery.form插件,实现完美的表单异步提交

    &lt;button type="submit"&gt;提交&lt;/button&gt; ``` 现在,我们可以使用jQuery选择器选取表单元素,并调用`.ajaxSubmit()`方法实现异步提交: ```javascript $(document).ready(function() { $('#myForm').ajaxSubmit({ ...

    一个from表单提交多个功能

    需要注意的是,这些按钮的类型设置为`button`而不是`submit`,这是因为`submit`类型的按钮默认会触发表单的提交行为,而我们希望通过自定义函数来控制这个过程。 #### JavaScript实现 接下来是实现的核心部分——...

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

    然而,这里提到的是一个特殊的情况,即表单数据被提交到同一个页面,并且页面使用JavaScript来捕获和处理这些提交的参数。 在Web开发中,表单提交是用户与网页交互的重要方式,常用于收集用户输入的数据。表单通过`...

    在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码

    在一个网页表单(form)中,通常我们通过设置不同的提交按钮(submit或button)来实现将数据提交至不同的处理页面。然而,在某些特定情况下,我们可能需要仅使用一个提交按钮(submit或button)来将表单数据同时提交到两个...

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

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

    js提交表单的三种方式

    当用户点击`&lt;form&gt;`元素内的`&lt;input type="submit"&gt;`或`&lt;button type="submit"&gt;`时,浏览器会按照`&lt;form&gt;`标签的`action`属性指定的URL发送表单数据,并根据`method`属性(默认为`GET`或`POST`)确定请求类型。...

    说说回车键触发表单提交的问题

    - **设置默认提交按钮**:通过设置`form`属性,将某个按钮指定为表单的默认提交按钮,例如`&lt;button form="myForm" type="submit"&gt;提交&lt;/button&gt;`。 - **监听键盘事件**:使用JavaScript,通过监听`keyup`或`keydown`...

    实现自动填表并提交表单示例

    在IT行业中,自动填表和提交表单是一项常见的任务,特别是在自动化测试、数据输入和爬虫等场景。本文将深入探讨如何使用Visual Basic (VB) 实现这一功能,特别是利用`WebBrowser`控件来模拟用户操作,进行自动填写...

Global site tag (gtag.js) - Google Analytics