更新:我已经用Razor HTML5创建了一个新的MVC3项目,然后我在JQuery 1.6中用NuGet更新了这个项目,验证插件不再工作了,它每次都会回发一次,并从服务器返回错误消息。我认为验证插件在JQuery 1.6中失效了
我有一个MVC3应用程序,它使用Jquery UI对话框(从包含表单的局部视图加载),以便通过ajax向服务器提交信息。在执行ajax post之前,我想在客户端触发表单的验证。在火狐和IE9上运行良好,在IE7 & IE8中,form.validate()总是返回true。
下面是附加到我的提交按钮上的js代码:
var wizard = $("#wizard"); //div that holds the modal dialog
var myform = $("#wizard form");
var submitFunction = function (e) {
e.preventDefault(); //no postback
myform.validate();
if (myform.valid()) {
$(this).attr("disabled", "disabled");
submited = true;
$.post(
"SuperAdmin/CreateEditController",
$(this).serialize(),
function (data) {
if (data.Success) {
wizard.dialog('destroy');
}
else {
wizard.html(data.Html);
}
},
"json"
); //end json post
}
};
myform.submit(submitFunction);
我使用的内容包括:
<script src="@Url.Content("~/Scripts/jquery-1.6.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
JQuery验证插件已使用1.8.0版的NuGet和1.6版的JQuery库进行了升级。
更新:我测试了使用脚手架默认模板生成的代码,它做了同样的事情,没有客户端验证。也许Razor1.6与JQuery脚手架模板不兼容??
https://stackoverflow.com/questions/5909260
复制相似问题