使用按钮阻止多次提交

时间:2014-12-02 02:16:36

标签: javascript jquery html 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>";

任何人都可以指导我如何实现这个目标吗?

4 个答案:

答案 0 :(得分:2)

最终,您无法阻止客户端的多个提交。您必须在服务器端以您使用的任何服务器端语言(例如,PHP)实现这些安全措施。

答案 1 :(得分:0)

客户端,你可以做类似的事情

var canSubmit = true;

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

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

});

现在,因为点击一次canSubmit后设置为false,所以第二次点击就不会运行代码。验证或处理提交的数据后,您可以将canSubmit设置回true

答案 2 :(得分:0)

当按钮处于onClicked时,请调用此函数:

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

答案 3 :(得分:0)

提交页面总是很棘手。提交

有两个挑战
  1. 正确地提到用户可以多次提交同一页面
  2. 如果用户刷新页面,则在提交页面后,还将重新提交页面
  3. 有一个技巧可以处理此挑战,使用GET调用重定向页面。您用于加载数据的GET调用。阅读更多相关信息here

    所以我建议在提交表单后将页面重定向到GET。

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

    由于重定向,因为您的最后一次调用是GET,刷新数据将被加载,并且没有任何损害。