javascript - 同一页面上的日期范围选择器的多个实例

标签 javascript jquery twitter-bootstrap bootstrap-daterangepicker

我有两个 Bootstrap 日期范围选择器。当我更改一个选择器的日期时,相同的日期会出现在第二个日期范围选择器中。

如何分离两个日期范围选择器,以便它们各自独立运行?

代码:

第一个日期选择器:

<div id="reportrange" class=" form-control">
<i class="glyphicon glyphicon-calendar fa fa-calendar"></i>&nbsp;
<b class="caret "></b>&nbsp;<span></span> 
</div>

第二个日期选择器:

<div id="usersdaterange" class=" form-control"> <i class="glyphicon 
glyphicon-calendar fa fa-calendar"></i>&nbsp;<b class="caret "></b>&nbsp;
<span></span>
</div>

JS:

$('#usersdaterange 
span ').on('
  apply.daterangepicker ',function(ev1,picker1) {
  var username1 = $("#userfilter").val();
  var start1 = picker1.startDate.format('YYYY-MM-DD');
  var end1 = picker1.endDate.format('YYYY-MM-DD');
});

$('#reportrange span').on('apply.daterangepicker', function(ev, picker) {
  $("#loader").show();
  var username = $("#userfilter").val();
  var start = picker.startDate.format('YYYY-MM-DD');
  var end = picker.endDate.format('YYYY-MM-DD');
});

最佳答案

Bootstrap daterangepicker 可立即使用多个实例。

$(function() {
  $('#dateRange1').daterangepicker({}, onSelect);
  $('#dateRange2').daterangepicker({opens:"left"}, onSelect);
});


function onSelect(start, end, label) {
    console.log("A new date selection was made: " + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
  }
body{
  padding:20px;
}

#dateRange1.form-control,
#dateRange2.form-control{
  width:45vw;
}

#dateRange1{
  position:absolute;
  left:10px;
}

#dateRange2{
  position:absolute;
  right:10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" rel="stylesheet"/>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>

<input id="dateRange1" class="form-control" type="text" name="daterange" value="01/01/2018 - 01/15/2018" />

<input id="dateRange2" class="form-control" type="text" name="daterange" value="01/01/2018 - 01/15/2018" />

( JSFiddle )

如果两者是链接的,那么一定是因为有一些代码将它们一起更新。也许最明显的可能性是 apply.daterangepicker 上调用了某个函数,然后使用 setStartDatesetEndDate 等更新其他日期选择器.

(不幸的是,从他们发布的代码中并不清楚最初的询问者问题是什么,但我想我无论如何都会回答这个问题,以消除任何搜索此问题的人的潜在困惑)

关于javascript - 同一页面上的日期范围选择器的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47996214/

相关文章:

javascript - 不使用 focus() 将文本框设置为事件状态

jquery - Chrome 20.x 问题(bug?)通过 jQuery 定期应用/删除类

jquery - 如何使用 jquery-ui 主题来设置需要 2 个图像的按钮的样式

jquery - 如何防止 div 上的默认折叠行为

jquery - 如何在表格上方设置bootgrid分页控件

html - 两个div之间的小差距

javascript - 为什么 Typescript 编译器不将 .ts 更改为 .js?

javascript - WebGL:INVALID_VALUE:attachShader:没有对象或对象被删除。这暗地里有帮助吗?

javascript - capybara 无法在页面上找到值(value)

javascript - Jquery 在行路径中水平水平制作六个图像的动画