如何使用jquery验证在submithandler中调用函数?

时间:2016-07-11 13:03:08

标签: jquery ajax jquery-validate

我试图在表单验证时调用ajax函数,但它对我不起作用。以下jquery on-submit方法对我来说很好。

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

但是我需要在submithandler中调用相同的东西,但这不起作用。

$(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;
            }
        });
    });

任何人都可以指导我错在哪里以及如何解决它。我想要感激。感谢

1 个答案:

答案 0 :(得分:2)

submitHandler this中指的是验证插件,而不是调用插件的形式。使用传入函数的form参数代替。

另请注意,preventDefault()会导致错误,因为e未定义,return false将不执行任何操作。在任何情况下都不需要它们,因为验证插件会为您预防表单提交。试试这个:

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