jquery - 我如何使用jquery验证调用submithandler中的函数?

标签 jquery ajax jquery-validate

我试图在表单验证后调用 ajax 函数,但它对我不起作用。下面的 jquery on-submit 方法对我来说工作正常。

$('#promotionAdd').on('submit',(function(e) {
        e.preventDefault();
        var formData = new FormData(this);
        promotionAdd(formData);
        return false;
    }));

但是我需要在提交处理程序中调用相同的东西,但这不起作用。

$(document).ready(function () {
        $('#promotionAdd').validate({ // initialize the plugin
            rules: {
                mtitle: {
                    required: true,
                    minlength: 3, 
                }
            },
            messages: {
                mtitle: "Please enter Promotion Title",
            },
            submitHandler: function (form) { // for demo
                //alert(this);
                e.preventDefault();
                var formData = new FormData(this);
                promotionAdd(formData);
                return false;
            }
        });
    });

任何人都可以指导我哪里错了以及如何解决它。我愿意欣赏。谢谢

最佳答案

submitHandler 中,this 指的是验证插件,而不是调用插件的表单。请改用传入函数的 form 参数。

另请注意,preventDefault() 将导致错误,因为 e 未定义,并且 return false 将不执行任何操作。无论如何,这里都不需要它们,因为验证插件会为您处理阻止表单提交的问题。试试这个:

submitHandler: function (form) {
    var formData = new FormData(form); // use 'form' here
    promotionAdd(formData);
}

关于jquery - 我如何使用jquery验证调用submithandler中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38307693/

相关文章:

jquery - 阻止文本移动其他 div

php - 无限滚动 JQuery/PHP(加载页面问题)

javascript - jQuery ajax 将事件附加到元素

jquery - 如何跟踪使用 jQuery Validate 的远程方法时进行的服务器端调用数量?

jQuery $(this).tagName 返回 "HTML"

jquery - Highcharts 工具提示

javascript - jQuery-validate 每元素验证不起作用

jquery - 在表单中多次设置 errorContainer

jquery - Ajax/JQuery/JSON 表单

JavaScript 数组不使用 Ajax 发布到 PHP 文件