更新:
我已经用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。