如何在jQuery验证中刷新submitHandler

时间:2014-01-13 17:42:03

标签: javascript jquery validation

我遇到了jQuery Validation插件的问题。 当我定义自定义submitHandler时,它会在第一次验证运行后存储。 我正在使用submitHandler通过AJAX请求发送Object,但是当事件触发后更改对象时,它不会在提交处理函数中更改。 有没有办法在每次事件触发后刷新提交处理程序?

我的代码

$('.request-telephone-form-submit').click(function(){  
    var thisForm = $(this).closest('form');

    var postVars = new Object();
    postVars.name = $('.request-name').val();
    postVars.phone = $('.request-phone').val();

    thisForm.closest('form').validate({
        rules:
        {
            Name: {
                required: true,

            },
            Telephone: {
                required: true,

            }
        },
        submitHandler: function(){
            $.ajax({
                type: 'POST',
                url: '...',
                data : postVars,
                success : function(response) {                      

                }
            });

        }

    })

});

2 个答案:

答案 0 :(得分:1)

你在这里遇到了一些错误。

$.validate来电移出click处理程序,然后直接在$(document).ready块中执行:

$(document).ready(function(){
    $('#formID').validate({
        //options here
    });
});

如果您的$('.request-telephone-form-submit')是表单中的提交按钮,则会在单击按钮时自动验证。如果表单根据您的rules进行验证,则会调用submitHandler函数。那时你可以像这样收集你的帖子变量:

   submitHandler: function(form){
       var postVars = new Object();
       postVars.name = $('.request-name').val();
       postVars.phone = $('.request-phone').val();            
       $.ajax({
            type: 'POST',
            url: '...',
            data : postVars,
            success : function(response) {                      

            }
       });
    }

答案 1 :(得分:0)

尝试处理表单标记上的事件并使用更好的jQuery方式的$('form.formClass').on('submit', function(){})