MVC 项目中的 jQuery 错误:Datepicker 不是函数

Posted

技术标签:

【中文标题】MVC 项目中的 jQuery 错误:Datepicker 不是函数【英文标题】:jQuery error in MVC project: Datepicker is not a function 【发布时间】:2016-02-19 02:36:39 【问题描述】:

这是我的看法:

@html.TextBox("toDateFilter", "", new  @class = "datepicker" )
...etc
...etc


<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>

<script>
    $(document).ready(function () 
        $(".datepicker").datepicker();
    );
</script>

我收到错误:

日期选择器不是函数。

我遵循了所有其他类似问题的建议,但没有任何效果。我还将视图更改为这些导入:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/ui-lightness/jquery-ui.min.css" />

我也试过这个:

var $j = jQuery.noConflict();
$j("#datepicker").datepicker();

我还检查了 jquery-ui.min.js 文件是否正确加载。

任何想法为什么会出错?如果我能提供更多信息,请告诉我...

【问题讨论】:

建议您的 .ready() 在 jquery-ui.min 脚本加载之前运行。你能在该行放一个断点,看看外部脚本是否已经加载了吗? 您的代码应该可以正常工作。我刚刚从您的问题中复制并粘贴了它,对我来说效果很好。 @AlanSchapira - 它在代码中的哪个位置运行该测试? 完美运行:jsfiddle.net/u52pvn3j 我会确保外部脚本位于 &lt;head&gt; 中,并且可能会考虑从您自己的域而不是 CDN 加载脚本。然后可以安全地预期 ready() 将在所有依赖项都加载后运行 【参考方案1】:

日期选择器不是一个函数。我也面临这个问题。我已经使用 Jquery Noconflict 函数解决了它。

$.noConflict();
jQuery(document).ready(function ($) 
    $(function () 
        $('.datefield').datepicker();
    );
);

【讨论】:

【参考方案2】:

这是来自 cmets 中 Starscream1984 的答案,所以给他们点道具!

问题是在 jquery-ui.js 脚本完成加载之前调用了 ready() 函数。

无法通过将其移至 &lt;head&gt; 或从我自己的域加载脚本来解决此问题。

我可以通过完全删除 ready() 函数并运行内容来修复它。

如果有人知道我如何强制脚本首先加载,或者最后调用 ready() 函数,请告诉我。

【讨论】:

【参考方案3】:

您是否尝试过这样做:

$(function () 
    $("#nameOfTheFieldInModel").datepicker(
        dateFormat: 'dd-mm-yy',
        changeMonth: true,
        changeYear: true
    );
);

文件准备好了吗?

【讨论】:

如果datepicker() 不是一个函数,那么你尝试传递给它的内容并不重要。 @AlanSchapira 您可以尝试将 jquery 包含在 Site.Master 中

以上是关于MVC 项目中的 jQuery 错误:Datepicker 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MVC 4 中更改 jQuery DatePicker 中的验证文本?

Asp.net MVC 中的 jquery 验证错误 - 无法获取属性“调用”的值:对象为空或未定义

在边缘浏览器中的 asp.net mvc 验证错误中使用 jQuery datepicker

在 jQuery 弹出窗口或 MVC 4 的警报中显示错误消息

日期选择器:jquery datepicker的使用

ASP.NET MVC 2 - jquery ajax 响应失败