【发布时间】: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