jquery验证& ajax.beginform

时间:2009-07-22 07:05:52

标签: jquery ajax jquery-validate

使用JQuery Validate插件时提交Ajax.Beginform并不会停止提交。有没有一种方法可以确保不提交Ajax.Beginform?

我也尝试使用JQuery Forms插件'ajaxify'我的表单。这是一种享受。但是,我的表单是一个登录表单,如果用户成功登录,我希望它们被重定向。我通过返回一个JavaScript对象在Ajax.BeginForm中完成了这个,但使用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',但它确实有效。我在询问是否有更好的方法?

罗布

1 个答案:

答案 0 :(得分:1)

对我来说这似乎不太讨厌,但他们我不是世界上最优雅的人。我认为我唯一不同的做法就是这样设置:

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

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