如果成功,我如何验证表单然后执行其他代码

时间:2012-01-02 20:48:31

标签: ajax validation asp.net-mvc-2

我无法弄清楚如何合并以下单独的代码:

 $(document).ready(function () {
     $("#signupForm").validate();
 });

 $(document).ready(function () {
    $("#btnSignup").click(function () {
        $.ajax({
            type: "POST",
            dataType: 'json',
            url: "/Newsletter/Signup",
            data: $('#signupForm').serialize(),
            success: function (response) {
                if (response.success) {
                    $('#signupMessage').show(0);
                }
                else {
                    showValidationErrors(response.Data);
                }
            }
        });
        return false;
    });

我需要先执行第一部分,如果它成功验证了表单,那么我需要执行第二部分。

2 个答案:

答案 0 :(得分:1)

我相信您可以使用valid()

伪代码;

$(document).ready(function () {
    $("#signupForm").validate();
    $("#btnSignup").click(function () {
        if ($("#signupForm").valid()) {
            // ajax query
        }
        return false;
    });
});

这有用吗?我还没检查过。

答案 1 :(得分:0)

这是我使用的一种通用方式。

$('form').submit(function(e){
    if (!$(e.target) && !$(e.target).valid()) {
        return;
    }
    // Ajax call here.
    $.ajax({ type: "POST",... });
});

最后,您可以将逻辑抽象为对象以获得更多OOP方法

var formHandler = {
        onSubmit: function(e){
            if (!$(e.target) && !$(e.target).valid()) {
                return;
            }
            // Ajax call here.
            $.ajax({ type: "POST",... });
        }
}

$('form').submit(formHandler.onSubmit);