首页 > web前端 > js教程 > 如何防止 jQuery 中的双重表单提交:什么技术最有效?

如何防止 jQuery 中的双重表单提交:什么技术最有效?

DDD
发布: 2024-11-09 15:07:02
原创
270 人浏览过

How to Prevent Double Form Submissions in jQuery: What Techniques Work Best?

如何在 jQuery 中防止双重表单提交

在处理需要大量时间处理的表单时,防止用户意外提交多次提交表格至关重要。本文讨论了使用 jQuery 实现此目的的方法。

初始尝试

初始方法涉及在表单提交时禁用所有输入和按钮。然而,这种技术导致表单无法在 Firefox 中提交。

改进的解决方案

解决方案在于有选择地仅禁用提交按钮,因为禁用所有输入可能会干扰表单提交。以下 jQuery 代码可实现此目的:

$('button[type=submit], input[type=submit]').prop('disabled', true);
登录后复制

替代插件方法

另一种选择是使用下面的 jQuery 插件,它利用 jQuery 的 data() 函数来标记

jQuery.fn.preventDoubleSubmission = function() {
  $(this).on('submit', function(e) {
    var $form = $(this);

    if ($form.data('submitted') === true) {
      e.preventDefault();
    } else {
      $form.data('submitted', true);
    }
  });

  return this;
};
登录后复制

用法:

$('form').preventDoubleSubmission();
登录后复制

排除 AJAX 表单

如果您的应用程序包含 AJAX 表单,应允许多次提交,您可以通过添加类来排除它们,如下所示:

$('form:not(.js-allow-double-submission)').preventDoubleSubmission();
登录后复制

以上是如何防止 jQuery 中的双重表单提交:什么技术最有效?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板