jQuery提交表单,然后禁用所有“input[type=”submit“]”以防止重复提交
jQuery submit form and then disable all 'input[type="submit"]' to prevent duplicate submissions
我有一个奇怪的问题,常见的解决方案似乎无法解决。当用户单击基于html的表单时,如果他们单击"保存","上一个"或"下一个",就会收到一些时髦的行为。
<div class="form-tab-nav form-tab-nav-bottom">
<input id="tab" name="tab" tabindex="25" type="hidden" value="3">
<input name="commit" tabindex="26" type="submit" value="Save">
<input id="prev_commit_bottom" name="prev_commit[bottom]" tabindex="27" type="submit" value="<< Prev">
<input class="orange" id="next_commit_bottom" name="next_commit[bottom]" tabindex="28" type="submit" value="Next >>">
</div>
使用 jQuery 1.6.1:
$('form').submit(function() {
$(this).find("input[type='submit']").prop('disabled',true);
});
这将禁用该按钮,以便不允许第二个 post 请求,但它会禁用重定向。也就是说,单击"上一个"或"下一个"的行为与单击"保存"的行为相同。
由于您在表单提交之前禁用了表单,因此不会发生任何操作。您必须设置超时才能允许提交。
$('form').submit(function() {
var after = $.proxy(function () {
$(this).find("input[type='submit']").prop('disabled',true);
},this);
window.setTimeout(after,50);
});
或
$('form').submit(function() {
var elems = $(this).find("input[type='submit']");
var after = function () {
elems.prop('disabled',true);
};
window.setTimeout(after,50);
});
我感谢大家的帮助,但这是解决我们双重提交问题的解决方案:
$('form').submit(function(e) {
var $form = $(this);
if ($form.data('submitted') === true) {
e.preventDefault();
} else {
$form.data('submitted', true);
}
});
而不是这一行
<input id="prev_commit_bottom" name="prev_commit[bottom]" tabindex="27" type="submit" value="<< Prev">
试试这个
<input id="prev_commit_bottom" name="prev_commit[bottom]" tabindex="27" type="submit" value="<< Prev">
相关文章:
- 通过 $(“#formname”).submit(); 重复表单提交
- Ajax Post-Submit函数提交两次
- 表单提交事件中this.submit()的行为
- 正在尝试使用.submit在表单提交上激发jquery validate
- 文件上传文档.ready .on('submit') 提交了两次
- jQuery提交表单,然后禁用所有“input[type=”submit“]”以防止重复提交
- $(id).submit() 不会触发表单提交
- ng-include 和 ng-submit 中丢失的范围不会提交表单,而 ng-click 会提交,但没有表单值
- 使用 Javascript 提交表单,输入名为 submit
- Chrome - 如何通过javascript提交具有输入名称=submit的表单
- JavaScript 表单提交带有一个名为 submit 的字段
- Jquery submit没有't提交表格
- jquery-submit没有't提交
- 当输入名称调用submit时,为什么表单不使用JavaScript提交
- 提交表单时未调用Submit函数
- 服务器脚本可以检测表单是使用提交按钮还是使用javascript:submit()发布的
- Javascript submit()没有't触发表单提交
- 提交按钮和文档.Form.submit()不同的脚本进行处理
- 使用.submit()表单的jquery未提交
- 如何在form.submit处理程序(jquery)中的异步回调中触发表单提交