欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

完美通行證表單重復提交是啥意思

林子帆2年前21瀏覽0評論

完美通行證表單重復提交是啥意思?

表單重復提交是重復多次的提交同一表單的意思。

在平時開發中,如果網速比較慢的情況下,或者遠程有延遲,用戶提交表單后,發現服務器半天都沒有響應,那么用戶可能會以為是自己沒有提交表單,就會再點擊提交按鈕重復提交表單,這樣會出現表單的重復提交,造成向服務器發送兩次請求,所以我們在開發中必須防止表單。

表單重復提交的情況:

1、第一次單擊提交之后,在沒有提交成功情況下,又單擊提交按鈕。

2、提交完表單之后,刷新網頁。

3、用戶提交表單后,點擊瀏覽器的【后退】按鈕回退到表單頁面后進行再次提交。

表單重復提交問題的三種解決思路

第一:如果是點擊submit類型的按鈕提交表單,就要先看是否是表單的默認提交事件,如果是,禁用默認提交事件(event.preventDefault();)或者改用button類型按鈕提交

$('#submit').click(function(e){

e.preventDefault()

})

第二: 如果是點擊按鈕ajax提交,就要在提交之后禁用掉按鈕,以免重復提交,這個在平時各種情況下的表單提交都考慮進去

禁用按鈕,加disabled屬性,或者加pointer-event:none屬性,或者用一個count來計數,只有在點擊一次的時候才提交表單

通常在提交成功之后會刷新或跳轉頁面,失敗則不會,要注意一下,如果提交失敗,把禁用的按鈕解除禁用

let count = 0;

$('#submit').click(function(){

count++;

if (page.clicktime == 1) {

setTimeout(()=>{

$.ajax({

success:res=>{

if(!res.success){

count = 0 // 提交按鈕解除禁用

}

},

error:err=>{

count = 0 // 提交按鈕解除禁用

}

})

})

}

// $(this).attr('disabled,true) // 禁用按鈕or

// $(this).css('pointer-event','none') // 來禁用點擊事件

})

第三: 如果是點擊選項提交,那么就要考慮label和input的關聯問題了,點擊label, 事件冒泡,input也會觸發一次提交

可以這樣來處理

$('label').click(function(e) {

if($(e.target).is('input')){ // 點擊label的時候,如果事件源是input,那么就把它禁用掉

return;

}

});

最后,其他的點擊事件也可以這樣處理, 避免多次觸發事件