<input type="submit" name="btnADD" id="btnADD" value="ADD"/>
当用户点击两次添加按钮时,会导致相同的数据被提交两次到表格中。因此,请帮助我限制用户只能提交一次。
<input type="submit" name="btnADD" id="btnADD" value="ADD"/>
当用户点击两次添加按钮时,会导致相同的数据被提交两次到表格中。因此,请帮助我限制用户只能提交一次。
var $myForm = $("#my_form");
$myForm.submit(function(){
$myForm.submit(function(){
return false;
});
});
如果从提交处理程序返回"false",则会阻止表单提交。禁用按钮可能会对表单的处理方式产生奇怪的影响。这种方法似乎基本上没有副作用,即使在具有多个提交按钮的表单上也可以使用。
尝试一下这段代码...
<input type="submit" name="btnADD" id="btnADD" value="ADD" onclick="this.disabled=true;this.value='Sending, please wait...';this.form.submit();" />
您可以在点击后禁用按钮或将其隐藏。
<input type="submit" name="btnADD" id="btnADD" value="ADD" onclick="disableButton(this)"/>
js :
function disableButton(button) {
button.disabled = true;
button.value = "submitting...."
button.form.submit();
}
http://www.xinotes.org/notes/note/369/
应该生成一个令牌并将其保存在会话中以进行初始页面呈现。当首次提交请求时,一起提交令牌,在Struts操作中运行一个线程,线程名为令牌ID并运行客户端请求的逻辑。当客户端再次提交相同的请求时,检查线程是否仍在运行(thread.getcurrentthread().interrupted),如果仍在运行,则发送客户端重定向503。
如果您没有使用任何框架,并且正在寻找简单的解决方案。 您可以借助下面的内容
java.util.UUID.randomUUID();
<%
String formId=(java.util.UUID.randomUUID()).toString();
session.setAttribute(formId,formId);
%>
<input type='hidden' id='formId' name='formId' value='<%=formId%>'>
$("#btnADD").on('click', function(btn) {
btn.disabled = true;
});
jQuery('form').submit(function(){
jQuery(this).unbind('submit'); // unbind this submit handler first and ...
jQuery(this).submit(function(){ // added the new submit handler (that does nothing)
return false;
});
console.log('submitting form'); // only for testing purposes
});
我对类似问题的解决方案是创建一个单独的、隐藏的提交按钮。它的工作方式如下:
onclick
导致第二个提交按钮被按下。<input type="submit" value="Email" onclick="this.disabled=true; this.value='Emailing...'; document.getElementById('submit-button').click();">
<input type="submit" id='submit-button' value="Email" name="btnSubmitSendCertificate" style='display:none;'>
我选择这种方式只是为了让其他在代码上工作的人更加清晰易懂。还有其他可能更加主观优秀的解决方案。
在提交表单时添加一个类,以防止用户双击/重复提交
$('form[method=post]').each(function(){
$(this).submit(function(form_submission) {
if($(form_submission.target).attr('data-submitted')){
form_submission.preventDefault();
}else{
$(form_submission.target).attr('data-submitted', true);
}
});
});
<form onSubmit="disable()"></form>
function disable()
{
document.getElementById('submitBtn').disabled = true;
//SUBMIT HERE
}
$_POST['submitBtn']
(因为我添加了多个提交按钮并需要知道它们使用的是哪一个)时,它失败了,因为它没有被设置。 - Barmar$('#btnADD').attr('disabled','disabled');
or
$('#btnADD').attr('disabled','true');