2

在使用 JQuery Validate 插件时提交 Ajax.Beginform 不会停止提交。有没有确保不提交 Ajax.Beginform 的好方法?

我还尝试使用 JQuery Forms 插件来“ajaxify”我的表单。这是一种享受。但是,我的表单是登录表单,如果用户成功登录,我希望他们被重定向。我在 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
            };

这对我来说有点“hacky”,但它确实有效。想问问有没有更好的办法?

4

1 回答 1

1

对我来说这似乎并不太老套,但他们我不是世界上最优雅的人。我认为我会做的唯一不同的事情就是这样设置:

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

var options = {
    beforeSubmit: function() {
        return $('#login').valid(); // check form is valid
    },
    success: manageResponse
};
于 2009-07-22T08:10:44.963 回答