easyui提交表单数据的时候如何防止二次提交

在前端提交数据的时候有时候可能会由于网络延迟等原因,我们在等待的时候会多次点击保存按钮,这可能会导致我们一次输入的数据多次提交,导致数据重复。最近在做项目的时候碰到了这个问题,先说一点,这个问题的解决方案有很多种,有的在前端解决,有的方案在后端解决,个人觉得能够在前段解决的最好在前段就解决,而且拿java来说,如果在后端解决,在高并发的情况下还要考虑线程安全的问题。最近接触的项目的前端是easyui,在此把解决方案做下记录。

不论是easyui还是别的框架,总体的一个思路是:当我们点击保存按钮之后把该按钮置为灰色,也就是不可点击状态,数据提交了再恢复可点击状态,这个思路个人认为算是解决二次提交最棒的方式,没有之一。

首先,项目的代码布局方式是把要提交的输入框等表单数据放在easyui的form里面,然后form表单放在一个dialog里面,接下来的问题就简单了。

dialog里面有buttons按钮可以使用,在具体使用的时候要给button按钮添加一个id,该按钮是easyui里面的linkbutton,easyui的API说明如下:

点击dialog的保存按钮之后会触发dialog的handler函数,在该函数里面放上提交表单数据的方法,如下的代码方式:

$(‘#XXX‘).form(‘submit‘);

上面的代码会触发form表单执行提交操作。而Form表单有一个onSubmit事件,在提交之前触发该事件如果相关验证均没有问题,那么提交之前把保存按钮设置为不可点击状态,

关键代码就写在onSubmit事件里面,代码如下:

onSubmit:function(){

 var isvalidate=XXXXXX;//相关表单数据的验证

if(isvalidate){//验证成功,也就是说表单的数据符合要求

$(‘#保存按钮的id‘).linkbutton(‘disabled‘);//在我的项目里面点击保存按钮之后对话框就关闭了,所以不涉及恢复保存按钮为可点击状态的情况,//如果要恢复按钮的可点击状态具体再实现,但肯定是可以实现的
}

}

本人的写的东西都是工作中的记录而已,语言组织方式主要只是为了让自己看懂,如果网友看到了有不懂得地方请见谅。

时间: 2024-12-28 23:29:40

easyui提交表单数据的时候如何防止二次提交的相关文章

jquery ajax提交表单数据的两种方式

jquery ajax提交表单数据的两种方式

jsp提交表单数据乱码,内置对象,以及过滤器

jsp提交表单数据乱码解决方案 通过form表单给服务器提交数据的时候,如果提交的是中文数据,那么可能会出现乱码,如果表单的请求方式是post请求,那么可以使用如下方案解决乱码: 在调用getParameter()之前,设置请求对象request的编码方式. <% request.setCharacterEncoding("utf-8");%> 002.如果是通过get方式提交的form,两种处理乱码方案: 01.通过new String(str.getBytes(“iso

JSON编码格式提交表单数据详解

以JSON编码格式提交表单数据是HTML5对WEB发展进化的又一大贡献,以前我们的HTML表单数据是通过key-value方式传输的服务器端,这种形式的传输对数据组织缺乏管理,形式十分原始.而新出现的JSON格式提交表单数据方法,将表单里的所有数据转化的具有一定规范的JSON格式,然后传输的服务器端.服务器端接收到的数据是直接可以使用的合格JSON代码. 如何声明以JSON格式提交表单 大家应该对如何用表单上传一个文件的写法很熟悉,它需要在HTML中form标记上添加 enctype="mult

axios异步提交表单数据的不同形式

踩坑Axios提交form表单几种格式 前后端分离的开发前后端, 前端使用的vue,后端的安全模块使用的SpringSecurity,使用postman测试后端的权限接口时发现都正常,但是使用vue+axios发送异步的请求后端一直获取不出axios提交的form表单的数据,爬坑两个半钟头找到了答案 axios用post异步形式提交的数据和我们直接使用from表单提交的数据的格式(Form Data格式)是不一样的,在下面列举 默认格式Request Payload 直接使用axios发送异步请

通过jQuery Ajax提交表单数据时同时上传附件

1.使用场景:需要使用ajax提交表单,但是提交的表单里含有附件上传 2.代码实现方式: <!-- HTML代码 --> <form method="post" action="" enctype="multipart/form-data" id="J-add-form"> <input type="file" name="qr_code" /> &l

ajax提交表单数据不跳转

1.onsubmit form表单的onsubmit方法在submit执行之前提交表单 <script type="text/javascript"> function sub() { // jquery 表单提交 $("#formId").ajaxSubmit(function(message) { // 对于表单提交成功后处理,message为返回内容 }); return false; // 必须返回false,否则表单会自己再做一次提交操作,并且

tomcat中间件提交表单数据量过大警告处理方案

昨天系统出现了一个比较奇怪的BUG,表单提交后,数据没有全部执行. 查看tomcat日志发现有以下警告: 18:52:23,058  WARN HttpMethodBase:682 - Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended. 18:52:31,290  WARN HttpMethodBase:682 - Going t

使用ajax异步提交表单数据(史上最完整的版本)

额 为啥用这个 不用form呢,因为这个效率高,而且在浏览器中运行程序的时候如果出现bug的话,页面不会显示显示错误信息,提高了用户的体验度. 那么,就来看看把,先给数据库表截个图哈 然后写项目被 我的目录结构 然后 看代码呗 conn.php <?php [email protected]_connect("localhost","root","root")or die("mysql连接失败!");@mysql_sel

Vue+axios+Servlet 中提交表单数据(含上传图片)超详版!!!

1.HTML页面 这里用post方法传送,大小不受限制:还用了v-model的双向绑定 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <link href="../css/bootstrap.css" type="text/css" rel="stylesheet&