簡體   English   中英

使用按鈕防止多次提交

[英]prevent multiple submission with button

我目前正在查看所有防止使用按鈕標簽進行多次提交的可能性。 我面臨的問題是,如果用戶真正快速單擊“提交”按鈕,它將使他們能夠提交多個帖子。 我想將提交內容限制為僅提交一個。 我嘗試使用onclick="this.disabled = true ,但是它使按鈕根本無法工作,當前的按鈕標簽如下所示:

return "<button class='button btn btn-primary' id='gform_submit_button' onclick='this.disabled = true' type='submit'><span>Submit!/span></button>";

誰能指導我如何實現這一目標?

最終,您不能在客戶端阻止多個提交。 您將必須以任何使用的服務器端語言(例如PHP)在服務器端實施這些安全措施。

客戶端 ,您可以執行以下操作

var canSubmit = true;

$('.button').click(function(){

    if(canSubmit)
    {
        // fire missiles
        canSubmit = false;
    }
    else
    {
        // sorry missiles loading
    }

});

現在,由於在單擊一次canSubmit其設置為false ,因此第二次單擊將不會運行該代碼。 驗證或處理提交的數據后,可以將canSubmit設置為true

當按鈕為onClicked時,請調用此函數:

function submitFunc(formId){.    document.getElementById(formId).submit();
}

提交頁面總是很棘手。 提交有兩個挑戰

  1. 正如您正確提到的,用戶可以多次提交同一頁面
  2. 提交頁面后,如果用戶刷新頁面,則該頁面也將重新提交

有一個技巧可以解決此挑戰,可以使用GET調用重定向頁面。 您用來加載數據的GET調用。 在此處了解更多信息。

因此,我建議在提交表單后將頁面重定向到GET。

在此過程中,將加載新表單,如果用戶嘗試提交表單,則將觸發將處理第一個挑戰的驗證。

並且由於重定向,因為您的最后一次調用是GET,刷新數據將被加載,並且其中沒有任何危害。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM