Javascript 使用按钮防止多次提交

Javascript 使用按钮防止多次提交,javascript,jquery,html,button,Javascript,Jquery,Html,Button,我目前正在查看使用按钮标签防止多次提交的所有可能性。我面临的问题是,如果用户真的很快点击提交按钮,它将使他们能够提交多个帖子。我想将提交的内容限制为仅提交一份。我试图使用onclick=“this.disabled=true,但这会使按钮根本无法工作。当前的按钮标签如下所示: return "<button class='button btn btn-primary' id='gform_submit_button' onclick='this.disabled = true' type=

我目前正在查看使用按钮标签防止多次提交的所有可能性。我面临的问题是,如果用户真的很快点击提交按钮,它将使他们能够提交多个帖子。我想将提交的内容限制为仅提交一份。我试图使用
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>";
return“提交/span>“;

有谁能指导我如何做到这一点吗?

最终,你不能阻止客户端多次提交。你必须在服务器端实施这些安全措施,无论你使用什么服务器端语言(例如PHP)。

客户端,你可以这样做

var canSubmit = true;

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

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

});

现在,由于单击一次后
canSubmit
已设置为
false
,第二次单击将不会运行代码。在验证或处理您提交的数据后,您可以在单击按钮时将
canSubmit
设置回
true

调用此功能:

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

提交页面总是很棘手的

  • 正如您正确提到的,用户可以多次提交同一页面
  • 提交页面后,如果用户刷新页面,则页面也将重新提交
  • 有一个技巧可以处理此挑战,即使用GET调用重定向页面。加载数据时使用的GET调用。请阅读更多相关信息

    所以我建议在表单提交后重定向页面以获取

    在此过程中,将加载新表单,如果用户尝试提交表单,将触发表单验证,该验证将处理第一个挑战


    由于您的最后一次调用是在刷新时进行重定向,因此将加载数据,并且不会造成任何伤害。

    不是真的。您可以使用JavaScript防止多次提交。而不是以确定的用户无法覆盖的方式。