$.ajax防止多次点击重复提交的方法
第一種:使用$.ajaxPrefilter( [dataTypes], handler(options, originalOptions, jqXHR) ) 方法:
$.ajaxPrefilter()方法 :是對全局所有的ajax請求有效,在所有的ajax請求之前,會(huì)對每一個(gè)請求統(tǒng)一做一些處理,可以去設(shè)置ajax的選項(xiàng),也可以對現(xiàn)有的ajax選項(xiàng)進(jìn)行更改;
接收兩個(gè)參數(shù):
dataTypes :可選參數(shù),一個(gè)可選的字符串,其中包含一個(gè)或多個(gè)空格分隔的數(shù)據(jù)類型;
handler(options, originalOptions, jqXHR):一個(gè)函數(shù),接收三個(gè)參數(shù)。
各個(gè)參數(shù)的含義:
options : 是請求的選項(xiàng),包括accepts、crossDomain、contentType、url、async、type、headers、error、dataType等許多參數(shù)選項(xiàng)
originalOptions : 值作為提供給Ajax方法未經(jīng)修改的選項(xiàng),因此,沒有ajaxSettings設(shè)置中的默認(rèn)值
jqXHR :就是經(jīng)過jQuery封裝的XMLHttpRequest對象(保留了其本身的屬性和方法)
代碼如下:
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {if ( options.abortOnRetry ) {if ( currentRequests[ options.url ] ) {currentRequests[ options.url ].abort();}currentRequests[ options.url ] = jqXHR;} });?
第二種:使用beforeSend選項(xiàng),在發(fā)送請求前將提交按鈕變?yōu)椴豢捎玫臓顟B(tài);
上面的第一種方法是針對所有的ajax請求,而這一種針對的是單個(gè)的請求;
在點(diǎn)擊過一次提交后,在提交完成前都將提交按鈕不可用,這樣就避免掉了重復(fù)點(diǎn)擊的問題
$.ajax({url:'testurl',beforeSend:function(){$('.submit').attr('onclick','javascript:void();');},success:function(data){$('.submit').removeAttr('onclick')},error:function(){$('.submit').removeAttr('onclick')} })?
轉(zhuǎn)載于:https://www.cnblogs.com/qiao20/p/11081804.html
總結(jié)
以上是生活随笔為你收集整理的$.ajax防止多次点击重复提交的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot启动流程分析(四):
- 下一篇: 人的幸福感取决于什么