来自和开始日期的Datepicker不起作用

时间:2013-07-26 02:54:05

标签: javascript jquery datepicker

日期选择“从”和“到”第一次工作,但是当我更改日期“从”时,日期“到”无效。

<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/bootstrap-datepicker.js"></script>

HTML

<th>From: <input type="text" class="from span2" value="" id="from"></th>
<th>To: <input type="text" class="to span2" value="" id="to"></th>

脚本

var from = $('.from').datepicker({autoclose: true}).on('changeDate', function(e){           

    $('.to').datepicker({autoclose: true, startDate: e.date })

});      

这是我的代码http://jsfiddle.net/britonet/VS2zS/2/ 首先尝试它的工作完美,我选择FROM = 07/03/2013,并且日期为TO禁用07/02/2013,07/01/2013 ..等等......但是如果我更改日期FROM = 06/10 / 2013,它没有禁用日期

3 个答案:

答案 0 :(得分:2)

问题是$('.to').datepicker未初始化。 JSFIDDLE非常简单,可以将设置为日期范围。

更新新版本:

以下代码设置新的开始日期:

var from = $('.from').datepicker({ autoclose: true }).on('changeDate', function(e){
$('.to').datepicker({ autoclose: true}).datepicker('setStartDate', e.date).focus();
});

FIDDLE.

答案 1 :(得分:0)

你的 .to 应该在你的改变之外。像这样的东西,

var from = $('.from').datepicker({autoclose: true}).on('changeDate', function(e){           

});    

var to $('.to').datepicker({autoclose: true, startDate: e.date });

这是工作代码。代码会将 starDate 设置为今天的日期。并且 endDate 将在startDate 后一天开始。如果更改了startDate,它将动态更改enddate,这样用户就无法在startDate之前选择日期

HTML:

From: <input type="text" class="from span2" value="" id="from"></th>
To: <input type="text" class="to span2" value="" id="to">

JQuery:

var _startDate = new Date(); //todays date
var _endDate = new Date(_startDate.getTime() + (24 * 60 * 60 * 1000)); //plus 1 day
$('#from').datepicker({
  format: 'mm/dd/yyyy',
  autoclose: true,
  startDate: _startDate,
  todayHighlight: true
}).on('changeDate', function(e){
    _endDate = new Date(e.date.getTime() + (24 * 60 * 60 * 1000)); //get new end date
    $('#to').datepicker('setStartDate', _endDate).focus(); //dynamically set new start date for #to
    });

$('#to').datepicker({
  format: 'mm/dd/yyyy',
  autoclose: true,
  startDate: _endDate,
  todayHighlight: false
});

HERE IS THE FIDDLE

有关Eternicode's bootstrap datepicker, click here

的更多信息

答案 2 :(得分:0)

您需要初始化两个日期选择器,并在第一个选择日期后更改第二个的开始日期:

var to = $('.to').datepicker({ autoclose: true });
var from = $('.from').datepicker({ autoclose: true }).on('changeDate', function(e){
    to.startDate = e.date;
});