关于网友提出的“ ajax提交表单怎样,防止重复提交等等问题?”问题疑问,本网通过在网上对“ ajax提交表单怎样,防止重复提交等等问题?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: ajax提交表单怎样,防止重复提交等等问题?
描述: 比如说页面查询条件有7个,
在以前用struts2做项目的时候,如果点2次提交按钮,它会查询两次,页面也会刷新2次,不会有两遍一样的数据放到页面里。
但是现在是点击提交按钮,数据是用ajax返回到前台页面的。
如果点2次,就会查询2次。页面就会多一遍一样的数据。
我通过js验证,自己加判断也可以做到防止提交等等。但是总是觉得这样写很不方便。
我有7个查询条件(可以输入,可以为空)。
如果第一次输入完查询条件,查询,再次点击查询会alert(“不要重复提交”),
如果有一个查询条件变化了,就清空页面的数据,重新进数据库查询。
(有些输入框没输入值,第二次输入了,要做的判断太多,undefined等等)。
所有页面都是ajax提交的,自己做判断写比较蛋疼,而且容易出现bug。
有么有人有好的方法,求大神指导一下?
解决方案1: 页面某些文本框为空的情况,写好sql语句应该就行!
解决方案2: 如果是查询的话,重复提交,有什么关系?你说会有多一遍数据是什么意思,一般是清空上一次查询出的数据,再插入本次的数据,最多就是服务器的压力大了一些。。。jquery.showLoading。这个js就有防止重复点击的作用
解决方案3: 楼主你想的太复杂了,没必要那样。
给你个思路:可以做的跟struts2一样,只要点击查询,就清空所有数据,重新查询。
只不过是异步刷新是struts2.
解决方案4: struts2有一个令牌。可以试试那个。token
解决方案5: 瞅瞅
解决方案6:
+1
解决方案7:提交一次之后 禁用按钮。。this.disable=true;
或者设置一个标志 提交完后设为false 提交前判断是否为true
应该这样用
解决方案8: 网上有写好的JQuery的代码。。
如果楼主想进行提示的话,那么恐怕就得自己写JS,使用标记位一类的手段了。
$.ajax({
type:'post',
url:'LibraryBooks_data.php',
data:params,
dataType: 'json',
async:false,
success: function (a)
{
if(a.action=='ture'){
$.success('操作成功!');
}
}
});
解决方案9: 用token:
Token原理:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。
以上介绍了“ ajax提交表单怎样,防止重复提交等等问题?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2879876.html