我需要在点击后禁用许多不同页面上的许多表单的提交按钮,以便只提交一次表单。
我知道检查双重提交的正确方法是更好地完成服务器端而不是仅仅禁用按钮,但我正在寻找一个现在应该做的简单解决方案。
以下是其中一个按钮:
<input type="submit" value="Save" />
这是我写的脚本
$(document).ready(function(){
$("input").each(function(index){
//find all submit buttons with value "Save"
if($(this).attr("value")=="Save"){
console.log(index);
$(this).click(function(){
//disable the button
$(this).attr("disabled","true");
console.log("save btn clicked");
//submit the form
var form = $(this).closest("form");
console.log(form.attr("action"));
form.submit();
});
}
});
});
一切正常,直到我尝试提交的部分,按钮禁用就好了。问题是它没有提交(没有这个脚本)。
为什么不提交?我没有找到表格或..?
答案 0 :(得分:0)
尝试...
$(form).submit();
而不是
form.submit();
答案 1 :(得分:0)
$('form:has(input[value="Save"])').on('submit', function() {
alert('form submitted');
$('input[value="Save"]', this).attr('disabled', true);
});
&#13;
input[disabled="disabled"] {
background-color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post" action="#">
<input type="submit" value="Save" />
</form>
&#13;