无法使用 javascript 弹出日期选择器

Posted

技术标签:

【中文标题】无法使用 javascript 弹出日期选择器【英文标题】:Can't pop up a datepicker using javascript 【发布时间】:2014-08-06 13:10:31 【问题描述】:

我想在使用 jQuery、appery.io 框架的网站中添加一个日期选择器。谁能建议一个链接或教程来做到这一点?尝试在一个网站中弹出一个日期选择器,现在它只在这样的输入框中显示当前日期:

<input type="text" name="cal" id="cal_id".....>

用到的javascript库有jquery-1.8.2.js、jquery-1.8.2.min.js、jquery.mobile-1.3.0.js等

我尝试了来自http://jqueryui.com/datepicker/ 的 JQuery UI 日期选择器。添加了 javascript 文件:code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css、code.jquery.com/jquery-1.10.2.js、code.jquery.com/ui/1.10 .4/jquery-ui.js。添加脚本如下:

<script>
            $(function () 
                $("#datepicker").datepicker();
            );

        </script>

在输入框中做了如下修改:

<input type="text" name="cal" id="datepicker"...>

它不工作或弹出网站中的日期选择器。我是 javascript 和 appery.io 的新程序员,我想我正在做一些非常愚蠢的事情或缺少一些非常基本的东西。请帮忙。

[我还尝试了来自http://www.javascriptkit.com/script/script2/timestamp.shtml、http://javascriptcalendar.org/javascript-date-picker.php、http://www.kean.edu/~cpd/calendar/zapatec/zpcal/doc/wizard.html..nothing 的其他一些日期选择器似乎对我有用。]

当我尝试刷新页面时,它显示'Uncaught TypeError: undefined is not a function'和'Uncaught TypeError: Cannot read property 'activePageClass' of undefined'。

更新:现在只有在我刷新页面时才会弹出日期选择器!所以当我导航到这个日历页面并点击输入框时,它不起作用或没有弹出日期选择器。但是,如果我在浏览器中刷新页面,那么它就可以了!!请帮忙!

【问题讨论】:

您在浏览器控制台中遇到什么错误? 没有错误!它只是没有做任何事情! 你的脚本对我有用 它正在工作。这是冲突的,因为 datepicker() 函数在另一个 js 文件中,而且我重新排列了 css 文件的顺序。谢谢。 哦!只有当我刷新页面时它才有效!因此,当我导航到此日历页面时,它不起作用或不会弹出日期选择器。但是,如果我在浏览器中刷新页面,那么它就可以了!!任何想法? @Alexandru Severin,@j08691 【参考方案1】:

您的脚本对我有用。你添加了 jquery-ui.css 吗?

将此添加到您的网站:

<script type='text/javascript' src='//code.jquery.com/jquery-2.0.2.js'></script>                       
<script type="text/javascript" src="//code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">

DEMO

测试: jQuery-2.0.2、jQuery-UI-1.10.3

编辑: 根据您的 cmets,我推断您的日历是在调用脚本后动态添加的。您的 jquery 函数仅影响页面加载时找到的元素,对于动态添加的元素,您需要查看 Jquery 的 live 函数。

尝试将您的脚本替换为:

$(function () 
    $(document).on('click', "#datepicker", function (e)
        $(this).datepicker();
    );
);

【讨论】:

我不确定发生了什么问题。日历没有弹出或没有任何反应。当我尝试刷新页面时,它显示“未捕获类型错误:未定义不是函数”和“未捕获类型错误:无法读取未定义的属性 'activePageClass'”。可能是因为我同时附加了 jquery-2.0.2.js/jquery-1.10.2.js 和 jquery-1.8.2.js 吗? @MSI - “可能是因为我同时附加了 jquery-2.0.2.js/jquery-1.10.2.js 和 jquery-1.8.2.js 吗?”可能。不应在同一页面中包含多个版本的 jQuery。 哦!只有当我刷新页面时它才有效!因此,当我导航到此日历页面时,它不起作用或不会弹出日期选择器。但是如果我在浏览器中刷新页面,那么它就可以了!!任何想法? @Alexandru Severin,@j08691 您是如何导航到该页面的?日期选择器是动态添加的吗? 当我从另一个页面导航时,我会通过如下的 onclick 函数进行操作:“Appery.navigateTo('CalendarPage', reverse: false );”

以上是关于无法使用 javascript 弹出日期选择器的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript:日期选择器组件的使用

Jquery日期时间选择器在弹出窗口中不起作用

按 esc 后无法打开日期选择器

引导日期选择器弹出窗口未显示突出显示的当前日期

玉模板中的日期选择器

jquery 日历/日期选择器