【问题标题】:jquery validate & ajax.beginformjquery 验证 & ajax.beginform
【发布时间】:2009-07-22 07:05:52
【问题描述】:

在使用 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 表单插件联系起来。

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

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

罗伯

【问题讨论】:

  • 这可能是解决方案 stackoverflow.com/questions/298691/…>

标签: jquery ajax jquery-validate


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-01-07
    • 2019-04-10
    • 2011-07-06
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多