JQuery Datepicker / Datetimepicker - 如何根据选定的选项在java中设置MaxDate

时间:2016-07-24 00:20:38

标签: javascript jquery datepicker datetimepicker

我在Javascript方面不太好 - 但我正在尝试这个:

我有一个事件列表,用户可以在将来“编程关闭”事件。

但是,此未来日期不能在事件发生后。

然后,我需要为每个事件设置一个maxdate。

我正在使用JQuery DatePicker - 并设置maxdate我这样做:

    $('#closeevent').datetimepicker({
    minDate: 0,
    maxDate: new Date(2016, 8, 15, 8, 0)
});

maxDate = 2016/8/15 08:00

我的问题:

如何为每个事件点击一个按钮更改“2016,8,15,8,0”(maxDate值)(因为每个事件都有不同的maxDate。

事件1 ... maxDate(2016,9,10,8,0).... [按钮onClick:..] 事件2 ... maxDate(2016,10,22,10,30)...... [按钮onClick:..]

如果我点击事件1的按钮 - maxDate更改为2016,9,10,8,0 ..

如果我点击event2的按钮 - maxDate更改为2016,10,22,10,30 ..

很多

1 个答案:

答案 0 :(得分:1)

您可以使用beforeShowDay属性来指定在显示每个日期之前调用的函数。返回允许您以更高的粒度控制日期。

你可以看一下这个小提琴的例子。 https://jsfiddle.net/tv760t1s/

var maxDate = new Date(2016, 8, 15, 8, 0);
$(".dateChange").click(function() {
  maxDate = new Date($(this).attr('value'));
  console.log(maxDate);
});
$("#datepicker").datepicker({
  minDate: 0,
  maxDate: new Date(2016, 8, 15, 8, 0),
  beforeShowDay: function(date) {
    console.log(date, maxDate);
    if (date > maxDate) {
      return [false, 'noShowClass', 'Date time not available'];
    } else {
      return [true, '', ''];
    }
  }
});

HTML:

<div>    
  <input type='text' id='datepicker' value=''>
  <input class='dateChange' type='button' value='2016-08-15 08:00:00'>
  <input class='dateChange' type='button' value='2016-09-10 08:00:00'>
</div>