【问题标题】:Bootstrap datepicker date range from and to引导日期选择器日期范围从和到
【发布时间】:2017-01-21 00:37:32
【问题描述】:

我有一个与 bootstrap3 datepicker 相关的问题,这是我的代码:

$(document).ready(
    /* This is the function for multi datepicker */
    function () {
        $(document).on('focus',".datepickers", function(){
            $("#searchByCreateDate").datepicker({
                endDate : new Date(), 
                beforeShow : function()
                {
                    $(this).datepicker({maxDate: 0});
                },
                autoclose:true,
                altFormat: 'yy-mm-dd', 
                format: 'yyyy-mm-dd'
            });
            $("#searchByToDate").datepicker({
                endDate : new Date(), 
                beforeShow : function()
                {
                    $(this).datepicker('option','startDate', $('#searchByCreateDate').val() );
                }, 
                altFormat: "yy-mm-dd", 
                format: 'yyyy-mm-dd',
                autoclose:true
             });
         }); 
    }
);

我有两个日期选择器——一个用于from date,第二个用于to date。我的要求是当用户选择from date 然后to datefrom date 开头并且以前的日期被隐藏并且在to date 中用户只能一次选择接下来的三个月。

【问题讨论】:

  • 请改写您的问题。真的很难阅读和理解你到底需要什么

标签: jquery twitter-bootstrap date datepicker


【解决方案1】:

您需要将startDateendDate 设置为您的日期选择器。由于您事先不知道所需的日期,因此您必须在选择第一个日期时添加它们 - onChange。你应该添加这个..

$('#searchByCreateDate').on("change", function(){
   //when chosen from_date, the end date can be from that point forward
   var startVal = $('#searchByCreateDate').val();
   $('#searchByToDate').data('datepicker').setStartDate(startVal);
});
$('#searchByToDate').on("change", function(){
   //when chosen end_date, start can go just up until that point
   var endVal = $('#searchByToDate').val();
   $('#searchByCreateDate').data('datepicker').setEndDate(endVal );
});

信息取自here

【讨论】:

  • 因为它们会在您的页面加载时立即执行。因此,您的输入字段为空且未设置限制。 datepicker 构造函数只执行一次。它不能一直“现场”收听字段。
  • 你不能。您必须添加这些 onchange 听众,我在我的回答中。该代码会监听元素何时更改并编辑您的日期选择器。您可以在 document.ready 的末尾添加这些行,它应该可以工作。
  • 这工作正常,但仍有一个问题是事件不断循环
  • 这可以帮助 .on("change", function(e){ var endVal = $(this).val(); if($(this).val()!="" && getFormattedDate($('#workFromDate').data('datepicker').getEndDate())!= endVal) $('#workFromDate').data('datepicker').setEndDate(endVal); });跨度>
猜你喜欢
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多