当前位置:编程学习 > C#/ASP.NET >>

$.ajax提交时如何防止数据重复

$.ajax({
                    url: urlStr,
                    type: "POST",
                    data: { type: 'InsertReservateInfo', phoneNum: $("#reser_tbPhoneNum").val(), Name: $("#reser_tbName").val(), Email: $("#reser_tbEmail").val() },
                    dataType: "json",
                    success: function (data) {
                        if (data != "") {
                            if (data == "1") {
                                //添加后提示
。。。。。。。。
} --------------------编程问答-------------------- 现在偶尔出现好几条相同的数据,见鬼了。会不会跟冒泡有关系呢。 --------------------编程问答--------------------  <a href="#" onclick="SubmitRes()" title="立刻申请">立刻申请</a>


页面上就一a标签。。。

ajax是在SubmitRes()方法里执行的。 --------------------编程问答-------------------- var isposted = false;

if(!isposted){
isposted = true;
@ajax.(
...
success:{isposted = false; }
)

} --------------------编程问答-------------------- 打断点跟一下,也有可能是多次提交导致重复插入,你可以插入前判断一下这条数据是否已经存在,然后再执行插入操作。 --------------------编程问答-------------------- 开发的时候根本没出啥问题,一放到服务器,问题就来了。无从下手。每次调试也只有一条数据过去。 --------------------编程问答--------------------
引用 5 楼  的回复:
开发的时候根本没出啥问题,一放到服务器,问题就来了。无从下手。每次调试也只有一条数据过去。

比如说,我这网速慢,点了一下你那个插入按钮,结果半天没反应过来,所以有可能我就会多点个两三次,但是你的程序其实已经把数据插入进去了,那这样是不是就会出现数据重复啊,所以你在插入之前可以跟据用户名或者其他什么字段判断一下这条数据是否存在,如果存在就不执行插入,不存在就插入! --------------------编程问答-------------------- 我试试吧,谢谢楼上几位提供宝贵意见。 --------------------编程问答-------------------- 检查你后台代码逻辑!  --------------------编程问答-------------------- 应该是多次点击了按钮,用js控制,点击按钮后禁止按钮 --------------------编程问答--------------------
引用 9 楼  的回复:
应该是多次点击了按钮,用js控制,点击按钮后禁止按钮


然后加上后台判断,如果存在则不重复添加 --------------------编程问答-------------------- 可能是因为你的html元素用的是

type="submit" --------------------编程问答-------------------- 你重新启动IIs看下 --------------------编程问答-------------------- --------------------编程问答--------------------

$("#button1").attr("disabled","disabled");//按钮不可用
$.ajax({
  url: urlStr,
  type: "POST",
  data: { type: 'InsertReservateInfo', phoneNum: $("#reser_tbPhoneNum").val(), Name: $("#reser_tbName").val(), Email: $("#reser_tbEmail").val() },
  dataType: "json",
  success: function (data) {
 $("#button1").removeAttr("disabled");//按钮可用
}
--------------------编程问答-------------------- +1 我也是这么弄的.
引用 14 楼  的回复:
JScript code

$("#button1").attr("disabled","disabled");//按钮不可用
$.ajax({
  url: urlStr,
  type: "POST",
  data: { type: 'InsertReservateInfo', phoneNum: $("#reser_tbPhoneNum").val(), Name: $("#reser……
--------------------编程问答--------------------
引用 14 楼  的回复:
JScript code

$("#button1").attr("disabled","disabled");//按钮不可用
$.ajax({
  url: urlStr,
  type: "POST",
  data: { type: 'InsertReservateInfo', phoneNum: $("#reser_tbPhoneNum").val(), Name: $("#reser……

+1

LZ,执行ajax的时候禁用button按钮就行了啊。当ajax执行之后在启用button按钮。 --------------------编程问答--------------------  肯定是 网络延迟 有问题的。 重复数据你的 没有唯一约束吗?
或者插入之前判断一下。
例如注册页面
可以检查一下用户名是否存在之类的。
你用的是jquery 可以用event.stopPropagation();来阻止 事件冒泡的行为
--------------------编程问答-------------------- 点击按钮后,会出现蔗罩层,所以不会出现用户点几次或多次的情况。问题是出在ajax提交数据的时候,数据表ID自增长。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,