我目前正在查看使用按钮标记阻止多次提交的所有可能性。我面临的问题是,如果用户真的很快点击提交按钮,它将使他们能够提交多个帖子。我想将提交内容限制为仅提交一份。我尝试使用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>";
任何人都可以指导我如何实现这个目标吗?
答案 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)
提交页面总是很棘手。提交
有两个挑战有一个技巧可以处理此挑战,使用GET调用重定向页面。您用于加载数据的GET调用。阅读更多相关信息here。
所以我建议在提交表单后将页面重定向到GET。
在此过程中,将加载新表单,如果用户尝试提交表单,将触发将处理第一次挑战的验证。
由于重定向,因为您的最后一次调用是GET,刷新数据将被加载,并且没有任何损害。