ASP.NET MVC 4 jQuery验证脚本包不工作
本文关键字:脚本 包不 工作 验证 jQuery NET MVC ASP | 更新日期: 2023-09-27 17:53:46
我最近升级了一个使用ASP的网站。. NET MVC 4,并有以下代码来呈现我的jQuery验证包。
但是我得到以下错误:
Microsoft JScript runtime error: Object doesn't support property or method 'live'
以及在文本框中单击时出现的错误:
Unhandled exception at line 1234, column 5 in http://localhost:13112/Scripts/jquery.validate.js
0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'call': object is null or undefined
我的bundle代码:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
我_Layout 。cshtml代码:
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/modernizr")
这是我渲染的HTML:
<link href="/Content/site.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.core.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.resizable.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.selectable.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.accordion.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.autocomplete.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.button.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.dialog.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.slider.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.tabs.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.datepicker.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.progressbar.css" rel="stylesheet"/>
<link href="/Content/themes/base/jquery.ui.theme.css" rel="stylesheet"/>
<script src="/Scripts/jquery-1.9.0.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="/Scripts/jquery-ui-1.9.2.js"></script>
<script src="/Scripts/modernizr-2.6.2.js"></script>
有人能指出为什么会出现这个错误吗?
谢谢,亚历克斯。
.live方法已在jQuery v1.7+中弃用,并在jQuery v1.9+中删除。
Bugreport: http://bugs.jquery.com/ticket/13213
解释:http://jquery.com/upgrade-guide/1.9/live-removed
.live()删除
.live()方法从jQuery 1.7开始就被弃用了在1.9中删除。我们建议升级代码以使用.on()方法代替。精确匹配$("a.foo")。例如,Live("click",fn),你可以写$(document)。打开("click", "a.fo ", fn)。更多的有关信息,请参阅.on()文档。在此期间,jQuery可以使用Migrate插件来恢复.live()功能。
如何修复:下载jquery迁移插件并将其添加到你的绑定中:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-migrate-{version}.js"));
更新:迁移插件现在也可以从Nuget获得了:
PM> Install-Package jQuery。迁移