twitter-bootstrap – xPages中的bootstrap 3的Eonasdan datetim
我在我的xpage应用程序中遇到了bootstrap dateTimePicker控件的问题,我怀疑这与xPages生成控件ID的方式有关.
以下代码在inputText元素上没有id时工作正常. <script type="text/javascript" src="/fPath/jquery-min.js"></script> <script type="text/javascript" src="/fPath/bootstrap/js/bootstrap.min.js"></script> <script type="text/javascript" src="/RfPath/bootstrap-datetimepicker-3.0.0/js/moment.min.js"></script> <script type="text/javascript" src="/fPath/bootstrap-datetimepicker-3.0.0/js/bootstrap-datetimepicker.min.js"></script> <div class='input-group date' data-datetimepicker="true"> <xp:inputText styleClass="form-control timePicker"> <xp:this.converter> <xp:convertDateTime type="time" timeStyle="short" /> </xp:this.converter> </xp:inputText> <span class="input-group-addon"> <span class="glyphicon glyphicon-time"></span> </span> </div> 一旦我添加了一个id,我在单击远离/退出控件时收到以下错误: 错误:语法错误,无法识别的表达式:unsupported pseudo:_id1 id是需要将数据映射回文档但我实际上并没有使用它来附加datetimepicker – 我正在使用一个类: $('.timePicker').each(function(i,el){SHARED.timePickerOpen(el)}) SHARED = { timePickerOpen: function(el){ $(el).datetimepicker({ pickDate: false,pickTime: true,useCurrent: true,minuteStepping:5 }); } } 更新#1: 听起来有点误会,所以我会试着进一步解释…… >在测试中,我用纯HTML编写代码,为字段提供ID和 问题似乎是使用字段ID的datetimepicker.即使我通过类名(不是id)获取字段,datetimepicker代码似乎想要在字段中找到一个id. datetimepicker绑定到该字段没有任何问题.当您尝试选择模型框显示的时间并允许您选择时间时,当您尝试单击该字段以关闭模型时间控件时会发生错误. 解决方法
有趣的插件.我创建了一个示例页面,看看我是否可以将它与XPage集成,如果我得到相同的错误.在完成我在下面描述的内容之后,我让它在没有您报告的问题的情况下运行.
如文档中所述,我已将插件和moment.js添加到数据库中,并使用示例代码here构建一个简单的演示页面.在数据库中我使用的是Bootstrap4XPages插件(March发行版),因此已经加载了Bootstrap 3.1.1. <?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom"> <xp:this.resources> <xp:script src="momentjs-2.7.0/moment.min.js" clientSide="true"> </xp:script> <xp:script src="eonasdan-datetimepicker/js/bootstrap-datetimepicker.min.js" clientSide="true"> </xp:script> <xp:styleSheet href="eonasdan-datetimepicker/css/bootstrap-datetimepicker.min.css"></xp:styleSheet> </xp:this.resources> <xp:div xp:key="facetMiddle"> <p> This page uses  <a href="https://github.com/Eonasdan/bootstrap-datetimepicker">Eonasdan's Bootstrap DateTimePicker</a> . </p> <div class="col-sm-6"> <div class="form-group"> <div class='input-group date' id='datetimepicker1'> <xp:inputText id="inputText1" styleClass="form-control"> <xp:this.converter> <xp:convertDateTime type="both" timeStyle="short" /> </xp:this.converter> </xp:inputText> <span class="input-group-addon"> <span class="glyphicon glyphicon-calendar"></span> </span> </div> </div> </div> </xp:div> <xp:scriptBlock id="scriptBlock1"> <xp:this.value><![CDATA[$(function () { $('#datetimepicker1').datetimepicker(); });]]></xp:this.value> </xp:scriptBlock> </xp:view> 首次打开XPage在Chrome控制台中给出了一个熟悉的错误: Uncaught TypeError: undefined is not a function 我之前见过一个:较新的jQuery插件尝试使用它的AMD加载器,但这与XPage中的Dojo实现不相符.我知道有两种解决方法: >使用Sven Hasselbach’s method在Dojo之前加载(JavaScript)资源. 这是你在bootstrap-datetimepicker.js中寻找的代码: ; (function (factory) { if (typeof define === 'function' && define.amd) { // AMD is used - Register as an anonymous module. define(['jquery','moment'],factory); } else { // AMD is not used - Attempt to fetch dependencies from scope. if (!jQuery) { throw 'bootstrap-datetimepicker requires jQuery to be loaded first'; } else if (!moment) { throw 'bootstrap-datetimepicker requires moment.js to be loaded first'; } else { factory(jQuery,moment); } } } 然后我们禁用(或删除;您的选择)AMD部分: ; (function (factory) { //if (typeof define === 'function' && define.amd) { // AMD is used - Register as an anonymous module. // define(['jquery',factory); //} else { // AMD is not used - Attempt to fetch dependencies from scope. if (!jQuery) { throw 'bootstrap-datetimepicker requires jQuery to be loaded first'; } else if (!moment) { throw 'bootstrap-datetimepicker requires moment.js to be loaded first'; } else { factory(jQuery,moment); } //} } 现场演示可以在here找到. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Bootstrap入门学习(一)——简介、下载
- 如何使用Vim跳转到XML元素的下一个兄弟节点?
- Ucwords过滤angularjs投掷错误
- shell脚本执行错误 $'\r':command not found
- twitter-bootstrap – 如何在引导模式Angular 4中正确显示谷
- Scala:如何从集合[K]创建地图[K,V],从K到V的函数?
- scala – 如何在Apache Spark中编码分类功能
- bootstrap datepicker 与bootstrapValidator同时使用时选择
- .net MVC+Bootstrap下使用localResizeIMG上传图片
- vim增加格式化功能