MVC 4 Razor 和 Jquery UI datepicker()“对象不支持属性或方法”
Posted
技术标签:
【中文标题】MVC 4 Razor 和 Jquery UI datepicker()“对象不支持属性或方法”【英文标题】:MVC 4 Razor and Jquery UI datepicker() "Object doesn't support property or method" 【发布时间】:2013-10-24 00:51:03 【问题描述】:我可能刚刚花了两个小时试图弄清楚这一点。
我的 MVC 应用程序抛出的具体错误是这样的: "0x800a01b6 - javascript 运行时错误:对象不支持属性或方法 'datepicker'"
这是我的代码:
_Layout.cshtml:
<head>
...
<script type="text/javascript" src="../../Scripts/jquery-2.0.3.js"></script>
<script type="text/javascript" src="../../Scripts/jquery-ui-1.10.3.js"></script>
</head>
视图 .cshtml
@
...
Layout = "~/Views/Shared/_Layout.cshtml";
...
<div>
Change Time Span:
<br />
From:
<input type="text" id="test" />
</div>
<div class="loading" id="container">@Model.LoadingMessage</div>
<script type="text/javascript">
$(document).ready(function ()
$('#test').datepicker();
);
</script>
我查看了几个潜在的“重复”问题,但均未成功。以下是我研究过的一些问题:
MVC3 razor view error Microsoft JScript runtime error: Object doesn't support property or method 'datepicker'` jQuery giving error "Object doesn't support this property or method" on method datepicker Using datepicker in MVC 4.0 to persist a date value in db, throwing "object doesn't support this property or method"
-
我相信我引用了 jquery 实现我的目标所需的一切。
该元素可以从 Jquery 读取,如果我设置它,它可以看到它的值,所以我认为我的选择器不是问题。
两个 Jquery 包都是通过 NuGet(最新的 Jquery 版本和 Jquery UI 组合库)安装的
我已经重建/清理了 Visual Studio 解决方案(绝望地),关闭本地 IIS 主机并重置它...
我错过了什么? Intellisense 甚至检测到该方法存在,并为我提供有关放置参数的建议。
我错过了什么简单的事情吗?
【问题讨论】:
只是为了确定,你检查过 jquery ui 路径是否正确吗?您可以在 chrome 控制台中检查任何 404 错误吗? 当然 - Chrome 控制台返回:Uncaught TypeError: Object [object Object] has no method 'datepicker' 嗯,只是为了咯咯笑,你能用谷歌 CDN 中的这些替换你的脚本吗: 克里斯,谢谢你的建议。这是另一个类似问题中的建议之一-我肯定尝试过但无济于事。 :// 【参考方案1】:我发现通过注释掉 _Layout.cshtml 底部的“@Scripts.Render("~/bundles/jquery")”,我能够解决我的问题。
【讨论】:
太棒了。感谢您的帮助,我花了几个小时试图解决这个问题。 这也解决了我的问题! (当然是几年后) 今天仍然与我的挑战相关。谢谢【参考方案2】:Required scripts
----------------
<link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.9.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.10.0.js")" type="text/javascript"></script>
<p>Date:<input type="text" id="Dob" class="datefield" /></p>
<script type="text/javascript">
$(document).ready(function ()
$("#Dob").datepicker(
changeMonth: true,
changeYear: true
);
);
</script>
【讨论】:
将此标记为答案,因为实际的解决方案是停止将 JQuery2.0 与 JQuery 1.10 一起使用 - 当我使用 JQuery 1.9 或 1.10 而不是 Jquery 2.x 时,日期选择器功能开始起作用.【参考方案3】:您是否检查过您没有两次引用 JQuery?我发现我已将它包含在我的布局和视图中。删除一个引用解决了这个问题。
【讨论】:
我也发现了这个。第二个与第一个不同。删除第二个解决了我的问题。【参考方案4】:试试这个:
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
或者这个:
<script" src="~/Scripts/jquery-ui-1.10.3.js"></script>
而不是这个:
<script type="text/javascript" src="../../Scripts/jquery-ui-1.10.3.js"></script>
【讨论】:
【参考方案5】:我在升级到 jQuery 2 时遇到了这个问题。我被 jQuery 下载中文件夹结构的变化所吸引; jquery-ui.js 文件不再位于 ui 文件夹中,因此我的脚本标记映射不正确。
简而言之,请仔细检查您的参考资料是否正确!
【讨论】:
以上是关于MVC 4 Razor 和 Jquery UI datepicker()“对象不支持属性或方法”的主要内容,如果未能解决你的问题,请参考以下文章
在 asp.net mvc razor 页面中验证 jquery 中的特定表单字段
使用 MVC3 Razor 在 Jquery 中应用图像扩展验证
MVC 4 - Razor - 将变量传递到 href url
ASP.net MVC Core Razor 页面和 Ajax JQuery