Вопрос по jquery, jquery-validate, ajax – jquery validate & ajax.beginform

2

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

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

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

Controller Code

            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
            };

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

обкрадывать

Это может быть решением & lt;stackoverflow.com/questions/298691/…& GT; Mark Dave Ingalla

Ваш Ответ

1   ответ
1

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

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

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

Похожие вопросы