Bootstrap DateTimePicker:一次打开一个日期时间选取器
Bootstrap DateTimePicker: Open one datetimepicker at a time
我有一个包含多个日期时间选择器的 html 模板。如果我单击按钮打开一个日期时间选择器,然后单击另一个以打开新选择器,则第一个保持不变(它不会关闭(。我希望一次只能打开一个日期时间选择器。
这是一个 JsFiddle 演示
$('#datetimepicker1, #datetimepicker2').datetimepicker();
这是引导日期时间选择器 2.5 在使用时刻 2.5(时刻与语言(时的标准行为,但现在它似乎不是那样工作的。
有人有任何想法来解决这个问题吗?
注意:我正在使用Eonasdan bootstrap-datetimepicker version 3.0.3,带有moment 2.8(moment-with-locales(,jQuery 1.9和Bootstrap 3
这里棘手的是,bootstrap-datetimepicker 会附加到为每个初始化的日期时间选择器<body>
一个与其触发按钮完全无关的<div>
。
试试这个:
$('.date').datetimepicker();
$(document).ready(function() {
// Select all elements with the 'date' class
$('.date').on('dp.show', function() {
$('.date').not($(this)).each(function() {
$(this).data("DateTimePicker").hide();
// $('.date').not($(this)) selects all the .date elements except
// for the one being shown by the datetimepicker dp.show event.
// The dp.show event is fired when a new datetimepicker is opened.
// We use the .data("DateTimePicker") to access the datetimepicker object
// (we have to use a jQuery each loop in order to access all the
// datetimepickers.
// .hide() -- we hide it.
});
});
});
这应该一次只允许打开一个日期时间选取器。
尽管乔尔·卢布拉诺的答案适用于预加载的小部件......它缺乏使用动态生成的(通过JS(的可能性。同时,我设法通过添加一行从组件内部解决此问题,解决了这两个问题。
在组件的 JS 中找到 picker.show
函数(大约 1150 行,具体取决于版本(这在 v1.3.1 中((......在该函数的最后一个 else 语句中,将以下行作为该语句的第一条指令。
$('.picker-open').hide().removeClass('picker-open');
仅此而已。之后,您只需要将 DTP 初始化封装在函数中,并在文档就绪和动态生成的小部件之后调用它。
function DTPinit(){
$('.dtp').datetimepicker();
}
$(function(){
DTPinit();
$('#dtp_gen').on('click', function(){
$('body').append('<div class="form-group"><div class="input-group dtp date""><input type="text" class="form-control datetimepicker" /><span class="input-group-addon"><span class="glyphicon-calendar glyphicon"></span></span></div></div>');
DTPinit();
});
});
在这里,你有一个JSFiddle演示了我上面描述的内容。BS-DTP 组件正在加载到小提琴 JS 容器中以进行编辑。
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 如何获得一个只有时间的moment.js日期对象
- 如何将日期id从一个jsp传递到另一个jsp页面
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 通过将6个月添加到今天来获得最后一个月的日期's日期
- 以datetime本地格式一个接一个地显示日期
- 引导程序日期时间选择器来自另一个日期时间选择器
- Javascript是一个很好的日期选择器和时间选择器库
- 为什么在JavaScript中可以从另一个日期对象中减去日期对象
- 从上一个日期创建日期并添加到该日期
- 从另一个日期选择器中选择另一个值后,获取日期选择器的起始值
- 在jsp中,隐藏一个基于其他具有日期选择器的字段的字段
- 日期时间格式增加了一个小时
- Onsen UI在点击时显示一个日期选择器
- 几个jQuery日期选择器小部件,只向其中一个添加类
- 如何在一个代码中检查无效的日期格式和超过18年的有效期
- 如何在 JS 中比较两个日期?一个是用户选择的,一个是当前日期
- Javascript Date()给出错误的日期一个小时
- 比较2个日期一个是jquery对象,另一个是文本框