【问题标题】:Why is jqueryUI datepicker throwing an error?为什么 jqueryUI datepicker 会抛出错误?
【发布时间】:2009-04-03 09:28:20
【问题描述】:

我正在尝试 jqueryUI,但 firebug 在此脚本上捕获以下错误:

$(function(){$("#date").datepicker()});

萤火虫错误如下:

$("#date").datepicker is not a function

在我的 html 中,“日期”ID 如下所示:

<input type="text" name="date" id="date" >

注意:我在该部分使用了正确的 JqueryUI css/js 脚本

什么都没有执行...

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-ui-datepicker


    【解决方案1】:

    jQuery documentation 说你可以通过这个命令调用日期选择器:

    $("#datepicker").datepicker();
    

    如果您单击文档页面上的“查看源代码”按钮,您可以看到他们已将其包装到 ready 函数中:

    $(document).ready(function(){
        $("#datepicker").datepicker();
      });
    

    编辑:它应该与 INPUT 一起使用(感谢 Steerpike 指出这一点)。这是我写的测试,它有效,你自己试试吧:

    <html>
    <head>
      <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
      <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
      <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
      <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.datepicker.js"></script>
      <script type="text/javascript">
      $(document).ready(function(){
        $("#datepicker").datepicker();
      });
      </script>
    </head>
    <body>
      <input type="text" id="datepicker" value="this is a test">   
    </body>
    </html>
    

    【讨论】:

    • 您需要将日期选择器附加到 DIV 或 SPAN。请再试一次。
    • 抱歉,我讨厌投反对票,但不能将 datepicker() 附加到输入字段是不正确的。仅仅因为演示没有显示这并不意味着你不能这样做。 (如果你不能将它附加到输入字段,它会使日期选择器变得非常无用)
    • @Steerpike:你是对的。文档说要将它附加到 DIV 或 SPAN,但在使用 INPUT 对其进行测试后,我在选择 INPUT 控件后得到了一个日历控件。
    • 投票支持您进行更正以及使用外部 ui/jquery 下载进行测试,这通常可以解决 SO 上 90% 的 jquery 问题 :)
    • 它现在可以工作了,但没有包含正确的标题 (ui.datepicker.js)
    【解决方案2】:

    您几乎可以肯定没有正确加载 datepicker 插件。请向我们提供您用于包含 javascript 文件的代码。

    如果您仍然遇到问题,请从 google api 加载 jquery 和 UI。

    <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
    
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("jquery", "1.3.2");
        google.load("jqueryui", "1.7.0");
    </script>
    

    【讨论】:

    • +1 你的评论让我有权为这个问题提供解决方案;-)
    【解决方案3】:

    对我来说,这只是确保 jquery ui 是所有 js 包含列表中的最后一个。

    【讨论】:

      【解决方案4】:
       $(document).ready(function(){
        // Your code here
       });
      

      确保您的函数位于 .ready 主函数中。

      【讨论】:

        【解决方案5】:

        这是一篇旧帖子,但我在寻找解决方案时来到这里,所以人们仍然阅读它;)我有或者更确切地说有同样的问题。就我而言,事实证明我以错误的方式在 html 中附加了 js(注意我以什么方式结束 script 标签)

        错误:&lt;script type="text/javascript" src="/fbo/js/jquery-ui-1.8.14.custom.min.js"/&gt;

        好的:&lt;script type="text/javascript" src="/fbo/js/jquery-ui-1.8.14.custom.min.js"&gt;&lt;/script&gt;

        当我以错误的方式进行操作时,我遇到了同样的错误。

        【讨论】:

          【解决方案6】:

          您可能正在加载prototype.js 或其他使用$ 作为别名的库。

          尝试用 jQuery 替换 $。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-12-10
            • 2019-06-13
            • 2021-06-17
            • 2015-02-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多