首页 > web前端 > js教程 > 如何防止 jQuery 中的双重表单提交?

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

DDD
发布: 2024-11-10 08:14:02
原创
784 人浏览过

How to Prevent Double Form Submission in jQuery?

防止 jQuery 中的表单重新提交

在表单提交中,防止用户在服务器处理延迟期间意外提交两次至关重要。常见的解决方案是在提交时禁用表单元素。但是,这种方法可能会禁用不应该的元素,例如包含基本数据的输入。

仅禁用提交按钮

专门禁用提交按钮并避免干扰对于表单提交,请使用以下代码:

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

用于防止双重提交的 jQuery 插件

另一个有效的解决方案是创建一个利用 data( ) 函数将表单标记为已提交:

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

        if ($form.data('submitted') === true) {
            // Previously submitted - don't submit again
            e.preventDefault();
        } else {
            // Mark it so that the next submit can be ignored
            $form.data('submitted', true);
        }
    });

    // Keep chainability
    return this;
};
登录后复制

要使用该插件,只需将其应用到您的表单:

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

排除 Ajax 表单

如果您有需要多次提交的 AJAX 表单,请通过添加类并使用以下选择器来排除它们:

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

通过利用这些技术,您可以防止重复表单提交并确保服务器流畅正在处理。

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

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