更新:
我已经用Razor HTML 5创建了一个新的MVC 3项目,然后我用NuView在JQuery 1.6中更新了项目,验证插件不再起作用,它每次都发回来,并返回错误信息服务器。我认为验证插件是用JQuery 1.6打破的
我已经用Razor HTML 5创建了一个新的MVC 3项目,然后我用NuView在JQuery 1.6中更新了项目,验证插件不再起作用,它每次都发回来,并返回错误信息服务器。我认为验证插件是用JQuery 1.6打破的
我有一个MVC 3应用程序,使用Jquery UI对话框(从包含表单的部分视图加载),以便通过ajax将信息提交到服务器。在我做ajax的帖子之前,我想在客户端触发验证我的表单。在Firefox和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验证插件已升级为NuGet版本1.8.0,JQuery库升级到1.6。
更新:
我已经测试了脚手架默认模板生成的代码,它做同样的事情,没有客户端验证。也许JQuery 1.6与Razor脚手架模板不兼容?
解决方法
Jquery Validate目前不适用于IE6,IE7和IE8中的jQuery 1.6。
https://github.com/jzaefferer/jquery-validation/issues/105