Как я могу проверить форму и затем выполнить дополнительный код в случае успеха - PullRequest
1 голос
/ 03 января 2012

Я не могу понять, как объединить следующие отдельные части кода:

 $(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 ]

1 голос
/ 03 января 2012

Я считаю, что вы можете использовать valid () .

Псевдокод;

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

Это работает? Я не проверял это.

0 голосов
/ 03 января 2012

Вот несколько общий способ, которым я пользуюсь.

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

Наконец, вы можете абстрагировать логику в объект для более ООП подхода

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

$('form').submit(formHandler.onSubmit);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...