繁体   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