$.ajax防止多次点击重复提交的方法
第一种:使用$.ajaxPrefilter( [dataTypes], handler(options, originalOptions, jqXHR) ) 方法:
$.ajaxPrefilter()方法 :是对全局所有的ajax请求有效,在所有的ajax请求之前,会对每一个请求统一做一些处理,可以去设置ajax的选项,也可以对现有的ajax选项进行更改;
接收两个参数:
dataTypes :可选参数,一个可选的字符串,其中包含一个或多个空格分隔的数据类型;
handler(options, originalOptions, jqXHR):一个函数,接收三个参数。
各个参数的含义:
options : 是请求的选项,包括accepts、crossDomain、contentType、url、async、type、headers、error、dataType等许多参数选项
originalOptions : 值作为提供给Ajax方法未经修改的选项,因此,没有ajaxSettings设置中的默认值
jqXHR :就是经过jQuery封装的XMLHttpRequest对象(保留了其本身的属性和方法)
代码如下:
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
if ( options.abortOnRetry ) {
if ( currentRequests[ options.url ] ) {
currentRequests[ options.url ].abort();
}
currentRequests[ options.url ] = jqXHR;
}
});
第二种:使用beforeSend选项,在发送请求前将提交按钮变为不可用的状态;
上面的第一种方法是针对所有的ajax请求,而这一种针对的是单个的请求;
在点击过一次提交后,在提交完成前都将提交按钮不可用,这样就避免掉了重复点击的问题
$.ajax({
url:'testurl',
beforeSend:function(){
$('.submit').attr('onclick','javascript:void();');
},
success:function(data){
$('.submit').removeAttr('onclick')
},
error:function(){
$('.submit').removeAttr('onclick')
}
})
随机推荐
- DOM 中 Property 和 Attribute 的区别(转)
property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...
- 记录一次坎坷的linux内网渗透过程瞎折腾的坑
版权声明:本文为博主的原创文章,未经博主同意不得转载. 写在前面 每个人都有自己的思路和技巧,以前遇到一些linux的环境.这次找来一个站点来进行内网,写下自己的想法 目标环境 1.linux 2. ...
- BootStrap2学习日记23---弹出对话框
<a href="#login" data-toggle="modal" class="btn btn-primary">登陆& ...
- LOJ6053 简单的函数(min_25筛)
题目链接:LOJ 题目大意:从前有个积性函数 $f$ 满足 $f(1)=1,f(p^k)=p\oplus k$.(异或)求其前 $n$ 项的和对 $10^9+7$ 取模的值. $1\le n\le 1 ...
- Master 接受其它组件的注册
Master对其它组件注册的处理: Master接受注册的对象主要就是: Driver.Application.Worker.注意:Executor 不会向 Master 注册,它是向 Driver ...
- Cogs 1435. [USACO NOV]金发姑娘和N头牛
1435. [USACO NOV]金发姑娘和N头牛 ★★☆ 输入文件:milktemp.in 输出文件:milktemp.out 简单对比时间限制:1 s 内存限制:256 MB [题 ...
- [Xcode 实际操作]四、常用控件-(18)MKMapView地图,将地理坐标转换为实际地名
目录:[Swift]Xcode实际操作 本文将演示将地理坐标转换为实际地名. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先往视 ...
- oracle函数获取汉字拼音的首字母
CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE V ...
- 解决LINUX下SQLPLUS时上下左右键乱码问题
window下的sqlplus可以通过箭头键,来回看历史命令,用起来非常的方便. 但是在linux里就没有这么方面了,错了一个命令,我们必须重新敲一次,辛苦了手指头叻. 看到一个文章,很方便的一招,给 ...
- JSON 的使用方法
JSON--JavaScript Object Notation,是一种轻量级的数据交互格式,本质是特定格式的字符串,相比xml更简洁,现在是客户端与服务器端交互的最常用选择,已经很少用xml了 JS ...