Eri*_* J. 62 jquery jquery-validate unobtrusive-validation
我使用Visual Studio 2012中的模板创建了一个新的ASP.Net MVC 4项目.升级到jQuery 1.9后,登录功能中断.具体来说,我得到了错误
0x800a138f - JavaScript运行时错误:无法获取未定义或空引用的属性"调用"
在第1172行,jquery.validate.js中的第5列
我该如何解决这个问题?
Eri*_* J. 85
此问题已在jQuery Validation Plugin 1.11.0pre中修复.
不幸的是,目前NuGet上没有预发布版本,所以目前有必要直接从GitHub下载jquery.validation.js:
现在可以通过NuGet获得jQuery.Validation 1.11(感谢@Simon_Weaver).
UPDATE
看起来jQuery 1.9的一般支持是在jQuery.Validation代码库中但尚未发布
https://github.com/jzaefferer/jquery-validation/pull/613
Ric*_*ard 37
如果你安装jQuery.Migrate 1.1.1那么它将适用于jQuery.Validation 1.11,jQuery 1.9和2.x.
除了这样做之外install-package jQuery.Migrate
,你必须将JavaScript添加到BundleConfig.cs - 我在jQuery之后添加它,这就是现在注册jQuery的行:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js", // jQuery itself
"~/Scripts/jquery-migrate-{version}.js")); // jQuery migrate
Run Code Online (Sandbox Code Playgroud)
Tra*_*s J 10
问题是验证脚本中的代码行
$.event.handle.call(this,e);
Run Code Online (Sandbox Code Playgroud)
这里的问题是$.event.handle
.双方this
并e
有正确的价值观.根据迁移脚本http://code.jquery.com/jquery-migrate-1.2.0.js,jQuery弃用了$ .event.handle,转而使用jQuery.event.dispatch .
修复这些错误就像使用dispatch简单地替换handle句柄一样简单.
这可以包装在document.ready回调中,以确保它在其他脚本运行后运行.
$(function(){
jQuery.event.handle = jQuery.event.dispatch
});
Run Code Online (Sandbox Code Playgroud)
小智 8
我有同样的问题,在Firefox中没有问题但是仍然给出了错误.我正在使用jquery-2.0.0; jQuery Validation Plugin 1.11.1
我找到了一个修复:替换
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Run Code Online (Sandbox Code Playgroud)
同
@section Scripts{
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/jqueryval")"></script>
}
Run Code Online (Sandbox Code Playgroud)