Asp.net jqueryui"$(“日期选择器”)。日期选择器不是函数;

Asp.net jqueryui"$(“日期选择器”)。日期选择器不是函数;,asp.net,javascript,jquery,datepicker,Asp.net,Javascript,Jquery,Datepicker,当我在现有的.aspx页面中使用jQuery的UI插件DatePicker时,会出现以下错误: $("#datepicker").datepicker is not a function 然而,当我将创建和使用datePicker的相同代码复制并粘贴到与aspx页面位于同一目录中的HTML文件时,它的工作是完美的。这导致我假设在aspx页面中有一些JS文件阻止了datePicker或jQuery的UI JS文件的正确加载 有谁能证实我的观点或提供一些关于找到干扰jQuery UI插件的罪魁祸首

当我在现有的.aspx页面中使用jQuery的UI插件DatePicker时,会出现以下错误:

$("#datepicker").datepicker is not a function
然而,当我将创建和使用datePicker的相同代码复制并粘贴到与aspx页面位于同一目录中的HTML文件时,它的工作是完美的。这导致我假设在aspx页面中有一些JS文件阻止了datePicker或jQuery的UI JS文件的正确加载


有谁能证实我的观点或提供一些关于找到干扰jQuery UI插件的罪魁祸首的提示吗

如果有另一个库正在使用$variable,则可以执行以下操作:

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

还要确保javascript包含的顺序正确,以便在jquery.ui之前定义jquery核心库。我遇到过导致问题的问题。

如果您认为存在冲突,可以在代码中使用
jQuery.noConflict()
。详情载于

参考魔术-快捷方式 JQUERY

如果你不喜欢输入完整的 “jQuery”一直以来,都有一些 其他快捷方式:

将jQuery重新指派给另一个快捷方式
var$j=jQuery(这可能是
如果您希望使用
不同的库)使用以下
技术,它允许您使用$
在代码块内部没有
永久覆盖$:

注意:如果您使用此 技术,您将无法使用 这个封装中的原型方法 希望$ 原型是美元,所以你要做一个 选择仅在其中使用jQuery 块将参数用于DOM 就绪事件:

注: 再说一次,在那块你不能用的地方 原型方法


这是文档末尾的内容,可能对您很有用。

您是否尝试使用Firebug 1)确定没有Javascript错误,2)页面上是否存在#datepicker元素


最有可能的是,在datepicker调用之前发生了一个错误,该错误阻止了datepicker调用的执行。

当您在jQuery UI集中缺少一个文件时,通常会出现此错误


仔细检查您是否拥有所有文件、jQuery UI文件以及CSS和图像,以及它们是否位于服务器上正确链接的文件/目录位置。

首先看一个明显的问题:您是否引用了jQuery-UI.js文件


尝试使用firebug的“网络”选项卡查看它是否已加载,或者Web Developer工具栏的Information\View javascript代码。

我刚刚遇到了这个问题,并将JS引用和代码移到页面底部,然后使用
标记将其修复。

还要检查下载文件的目录的权限。由于某种原因,当我下载这个时,默认情况下它保存在一个不允许访问的文件夹中!我花了很长时间才发现问题所在,但我只需要更改目录及其内容的权限-将其设置为EVERYONE=READ ONLY。现在效果很好。

我为类似的问题挣扎了好几个小时。后来证明jQuery包含了两次,一次是由我添加jQuery函数的程序包含,一次是由我们的内部调试器包含。

我最近遇到了这个问题-问题是我在head标记中包含了jQuery UI文件,但我在body标记的底部使用了包含jQuery的Telerik库(因此,显然重新初始化jQuery并卸载先前加载的UI插件)


解决方案是找出jQuery实际包含的位置,然后再包含jQuery UI脚本。

我遇到了类似的问题。当我将脚本引用从自动关闭标记(即,
)更改为空节点(即,
)时我的错误消失了,我可以突然引用jQueryUI函数


当时,我没有意识到这只是我没有正确关闭它的一个大脑屁。(我发布这篇文章只是因为有可能其他人遇到了类似的问题。)

一些文件在调用之前没有加载

例如: 您的代码:

<%= javascript_include_tag "distpicker.min" %>
<%= javascript_include_tag "distpicker.data.min" %>

更改为:

<%= javascript_include_tag "distpicker.data.min" %>
<%= javascript_include_tag "distpicker.min" %>

我知道这篇文章已经很老了,但为了便于参考,我通过更新datepicker的版本解决了这个问题

同样值得一试,以避免数小时的调试

jQuery“$(“#日期选择器”)。日期选择器不是函数“

我已通过将以下三个文件放在表单末尾的正文部分解决了这个问题

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js" type="text/javascript"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="Stylesheet" type="text/css" />

我可以通过删除_Layout.cshtml上的jquery包来解决这个问题

标题

    <script src="~/Scripts/jquery-1.10.2.js"></script>
    <script src="~/Scripts/kendo/2015.2.902/kendo.all.min.js"></script>
    ...
将页脚更改为

    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
你试过使用吗 $(“#”)日期选择器(); 而不是 $(“#txtDateElementId”).datepicker();
使用JQuery按ID选择元素时。

在我的例子中,通过更改以下脚本的导入顺序解决了此问题: 之前(不工作):


工作后:

旧问题-更新版本的.NET(4.5.6)-相同问题-新答案

使用NuGet

确保通过NuGet安装了以下组件:

  • jQuery
  • AspNet.ScriptManager.jQuery
  • jQuery.UI.Combined
  • AspNet.ScriptManager.jQuery.UI.com
从此处安装它们[工具>NuGet软件包管理器>管理解决方案的NuGet软件包]

然后,应将jquery和jquery.ui.combined添加到Site.Master中的ScriptManager中。如下所示:

    <asp:ScriptManager runat="server">
        <Scripts>
            <%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
            <%--Framework Scripts--%>
            <asp:ScriptReference Name="MsAjaxBundle" />
            <asp:ScriptReference Name="jquery" />
            <asp:ScriptReference Name="jquery.ui.combined" />
            <asp:ScriptReference Name="bootstrap" />
            <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
            <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
            <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
            <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
            <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
            <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
            <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
            <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
            <asp:ScriptReference Name="WebFormsBundle" />
            <%--Site Scripts--%>
        </Scripts>
    </asp:ScriptManager>
<script src="https://code.jquery.com/jquery-1.12.1.js"></script>

这解决了我同样的问题。 谢谢。

(“#日期选择器”)。日期选择器不是一个函数

    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
    <asp:ScriptManager runat="server">
        <Scripts>
            <%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
            <%--Framework Scripts--%>
            <asp:ScriptReference Name="MsAjaxBundle" />
            <asp:ScriptReference Name="jquery" />
            <asp:ScriptReference Name="jquery.ui.combined" />
            <asp:ScriptReference Name="bootstrap" />
            <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
            <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
            <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
            <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
            <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
            <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
            <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
            <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
            <asp:ScriptReference Name="WebFormsBundle" />
            <%--Site Scripts--%>
        </Scripts>
    </asp:ScriptManager>
<script src="https://code.jquery.com/jquery-1.12.1.js"></script>