使用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',但它确实有效。我在询问是否有更好的方法?
罗布
答案 0 :(得分:1)
对我来说这似乎不太讨厌,但他们我不是世界上最优雅的人。我认为我唯一不同的做法就是这样设置:
$('#login').validate(); // setup form to use validation plugin
var options = {
beforeSubmit: function() {
return $('#login').valid(); // check form is valid
},
success: manageResponse
};