【问题标题】:MVC 4 Razor and Jquery UI datepicker() "Object doesn't support property or method"MVC 4 Razor 和 Jquery UI datepicker()“对象不支持属性或方法”
【发布时间】: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"

  1. 我相信我引用了 jquery 实现我的目标所需的一切。
  2. 该元素可以从 Jquery 读取,如果我设置它,它可以看到它的值,所以我认为我的选择器不是问题。
  3. 两个 Jquery 包都是通过 NuGet(最新的 Jquery 版本和 Jquery UI 组合库)安装的
  4. 我已经重建/清理了 Visual Studio 解决方案(绝望地),关闭本地 IIS 主机并重置它...

我错过了什么? Intellisense 甚至检测到该方法存在,并为我提供有关放置参数的建议。

我错过了什么简单的事情吗?

【问题讨论】:

  • 只是为了确定,你检查过 jquery ui 路径是否正确吗?您可以在 chrome 控制台中检查任何 404 错误吗?
  • 当然 - Chrome 控制台返回:Uncaught TypeError: Object [object Object] has no method 'datepicker'
  • 嗯,只是为了咯咯笑,你能用谷歌 CDN 中的这些替换你的脚本吗:
  • 克里斯,谢谢你的建议。这是另一个类似问题中的建议之一-我肯定尝试过但无济于事。 ://

标签: jquery asp.net-mvc jquery-ui razor datepicker


【解决方案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 文件夹中,因此我的脚本标记映射不正确。

    简而言之,请仔细检查您的参考资料是否正确!

    【讨论】:

      猜你喜欢
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 2019-03-29
      • 2015-11-21
      • 2018-01-11
      • 2011-02-02
      相关资源
      最近更新 更多