jquery validate & ajax.beginform - PullRequest
       8

jquery validate & ajax.beginform

2 голосов
/ 22 июля 2009

Отправка Ajax.Beginform при использовании плагина JQuery Validate не останавливает отправку. Есть ли хороший способ убедиться, что Ajax.Beginform не отправлен?

Я также пытался использовать плагин JQuery Forms, чтобы «подправить» мою форму. Это работает удовольствие. Тем не менее, моя форма является формой входа в систему, и если пользователь успешно войдет в систему, я бы хотел, чтобы они были перенаправлены. Я сделал это в Ajax.BeginForm, возвращая объект JavaScript, но тот же код, использующий JQuery.Form.js, просто отображает Javascript, а не выполняет его. Есть ли способ справиться с этим?

[как указано ниже, я добавил пример кода]

Код контроллера

            if (Request.IsAjaxRequest())
            {
                return Content("/receipt/latest");
            }
            else
            {
                return RedirectToAction("latest", "receipt");
            }

Я использовал это, чтобы вернуть строку этой функции js: -

JS

            function manageResponse(responseText, statusText) {
                if (responseText.toString().substr(0, 1) == '/') {
                    window.location = responseText;
                }
                else {
                    $("#formResult").text(responseText);
                }
            }

Я использовал эти опции, чтобы связать ответ с плагином JQuery Form.

            var options = {
                beforeSubmit: function() {
                    return $('#login').validate().form();
                },
                success: manageResponse
            };

Мне это кажется немного "хакерским", но это работает. Я спрашивал, был ли лучший путь или нет?

Rob

1 Ответ

1 голос
/ 22 июля 2009

Мне кажется, это не слишком глупо, но я не самый элегантный парень в мире. Единственное, что я думаю, я бы сделал по-другому:

$('#login').validate(); // setup form to use validation plugin 

var options = {
    beforeSubmit: function() {
        return $('#login').valid(); // check form is valid
    },
    success: manageResponse
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...