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
我会确保外部脚本位于 <head>
中,并且可能会考虑从您自己的域而不是 CDN 加载脚本。然后可以安全地预期 ready()
将在所有依赖项都加载后运行
【参考方案1】:
日期选择器不是一个函数。我也面临这个问题。我已经使用 Jquery Noconflict 函数解决了它。
$.noConflict();
jQuery(document).ready(function ($)
$(function ()
$('.datefield').datepicker();
);
);
【讨论】:
【参考方案2】:这是来自 cmets 中 Starscream1984 的答案,所以给他们点道具!
问题是在 jquery-ui.js
脚本完成加载之前调用了 ready()
函数。
无法通过将其移至 <head>
或从我自己的域加载脚本来解决此问题。
我可以通过完全删除 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