form表单重复提交,type=“button”和type=“submit”区别
公司测试提了一个项目后台在IE浏览器下(360,firefox就没问题)出现数据重复的问题,调试了好久终于发现问题所在,也不知道是谁写的代码,醉醉的。。。。
错误地点:
<input type="submit" value="提交" class="btn" id="formSubmit" onclick="checkForm()" />
type类型写成submit,而在checkForm中也进行了form提交。
type=“button”和type="submit"在IE firefox 360下分别进行submit()提交和走ajax测试:
测试代码:
<body>
<form id="form1" method="get" >
<input name="username" value="zhangsan" /><br>
<input name="age" value="20" /><br>
<input name="address" value="beijing" /><br>
<input name="birthday" value="10-12" /><br>
<input name="contactInfo.tel" value="13321464327" /><br>
<input name="contactInfo.address" value="hebei" /><br>
<input id="subbutton" type="submit" value="submit" onclick=""/>
<!-- <input id="subbutton" type="button" value="submit" onclick="submit();"/> -->
</form>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function() { $("#subbutton").click(function() {
$.ajax({
type : "POST",
url : "queryItems.action?name='xuhui'",
data : $("#form1").serialize(),
async : false,
dataType : "json",
success : function(data) { }
});
}); // function submit(){
// $("#form1").submit();
// }
});
</script>
</body>
测试结果:
type=“submit”
普通submit:
IE 提交form two
firefox 提交form one
360 提交form one
ajaxsubmit:
IE two
firefox two
360 two
type="button"
普通submit:
IE one
firefox one
360 one
ajaxsubmit:
IE one
firefox one
360 one
结果分析:
type=button 就单纯是按钮功能
type=submit 是发送表单
但是对于从事WEB UI的人应该要注意到,使用submit来提高页面易用性:
使用submit后,页面支持键盘enter键操作,而很多WEB软件设计师,可能没有注意到submit统一.
用button后往往页面不支持enter键了。所以需要支持enter键,必须要设置个submit,默认enter键对页面第一个submit进行操作。
<input type="submit" name="submit" value="提交" onClick="submit()">
执行完onClick,转到action。可以自动提交不需要在onClick中进行提交。所以说onclick这里可以不要。
这里就可以解释为什么上面会出现重复提交了,但是重复提交情况只会在IE浏览器中,firefox 和360就没有,猜想应该是对form提交进行了优化。
<input type="button" name="button" value="提交" onClick="submit()">
执行完onClick,跳转文件在 js文件里控制。提交需要onClick。
学习过程中的bug记录。。。
-END-

form表单重复提交,type=“button”和type=“submit”区别的更多相关文章
- JavaWeb学习总结(十一):Session解决form表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- js阻止form表单重复提交
防止表单重复提交的方法总体来说有两种,一种是在js中阻止重复提交:另一种是在后台利用token令牌实现,大致思路是生成一个随机码放到session和form表单的隐藏输入框中,提交表单时两者对比,表单 ...
- php 解决和避免form表单重复提交的方法
在提交表单的时候,可能遇到网速等导致页面突然加载变慢,用户重复地点击提交按钮,将在数据库产生多条数据,导致不可控情况. 比如下面的情况就会导致表单重复提交: 点击提交按钮两次. 点击刷新按钮. 使用浏 ...
- easyUI的form表单重复提交处理
1. 问题 生产环境出现过新增用户提交, 入库两条重复数据的情况; 但是我查看代码, 页面做了校验, 后台插入数据也做了校验; 出现这种几率的事件的非常小的, 但是还是会碰到, 客户会对我们的产品产 ...
- java web学习总结(十三) -------------------使用Session防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- JavaWeb防止表单重复提交(转载)
转载自:http://blog.csdn.net/ye1992/article/details/42873219 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用 ...
- JavaWeb---总结(十三)使用Session防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- [Java拾遗五]使用Session防止表单重复提交
申明:此文章属于转载, 转自博客: http://www.cnblogs.com/xdp-gacl/p/3859416.html在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没 ...
- java web 学习十三(使用session防止表单重复提交)
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
随机推荐
- EditPlus仿Sublime配色方案(三种任你选择)
[Options] Placement=2C00000002000000030000000083FFFF0083FFFFFFFFFFFFFFFFFFFFEA000000EE000000D6050000 ...
- Javascript--dataTransfer
描述: 提供对于预定义的剪贴板格式的访问,以便在拖拽中使用 属性 描述 参数 dropEffect[=sCursorStyle] 设置或获取拖拽操作的类型和要显示的光标类型 可选的copy 复制样式被 ...
- PE文件结构(五岁以下儿童)基地搬迁
PE文件结构(五岁以下儿童) 參考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 基址重定位 链接器生成一个PE文件时,它会如果程序被装入时使用的默认ImageBase基地址(VC默认 ...
- Sql开发技巧
原文:Sql开发技巧 简介 本文主要介绍下述几个技巧: 使用Row_Number分页 事务 根据条件刷选记录的技巧 分页 主要是使用了Row_Number()这个函数.一般如下: declare @P ...
- 【SSRS】入门篇(七) -- 报表发布
原文:[SSRS]入门篇(七) -- 报表发布 完成[SSRS]入门篇(六) -- 分组和总计后,第一份简单的报表就已完成了,下面把报表发布到报表服务器上. (实际情况下,报表展示给用户未必是用报表服 ...
- 【转】android创建Popwindow弹出菜单的两种方式
方法一的Activity package com.app.test02; import android.app.Activity; import android.os.Bundle; import a ...
- httpWebRequest.ContentType 属性、值 类型用法
httpWebRequest.ContentType 属性.值 类型用法 冰火战地 指定将数据回发到服务器时浏览器使用的编码类型.下边是说明: application/x-www-form-urlen ...
- [转]当图片源大小大于ImageView大小时的处理方式(缩放)
转一篇当图片源大小大于ImageView大小定死时的处理方法,但不适用于图片大小小于ImageView时的情况,因为inSampleSize不能<1, 谁有特别好的放大的解决方案,除了设置Ima ...
- LaTeX新人30分钟从完全陌生到基本入门
From:http://www.360doc.com/content/13/0117/11/2886802_260681908.shtml 对于真心渴望迅速上手LaTeX的人,前言部分可以跳过不看. ...
- Using Ninject in a Web Application
http://aidenweb.co.uk/?p=15 Using Ninject in a Web Application I have been meaning to look at Ninjec ...