禁用Month / DatePicker上的月份

时间:2015-10-05 10:05:49

标签: javascript jquery jquery-ui-datepicker bootstrap-datepicker

请查看我的fiddle

我有一个月份选择器,只允许用户提前一年选择,但我想要的是过去几个月被禁用,以及提前一年被禁用的任何月份,但我无法弄清楚如何获得这个工作

示例场景 本月为'十月',因此'2015年'月'1月至9月'将被禁用,11月至12月'将被禁用为'2016年'

我尝试过使用minDate:“0”和maxDate:“1y”但它们不起作用。

HTML

<div class="input-group date" style="width: 200px">
    <input type="text" id="example1" class="form-control" style="cursor: pointer"/>
        <span class="input-group-addon">
            <i class="glyphicon glyphicon-calendar"></i>
        </span>
</div>

JQuery的

$('#example1').datepicker
({
    format: "MM yyyy",
    minViewMode: 1,
    autoclose: true,
    startDate: new Date(new Date().getFullYear(), '0', '01'),
    endDate: new Date(new Date().getFullYear()+1, '11', '31')
});

3 个答案:

答案 0 :(得分:7)

<强> DEMO

您可以使用startDateendDate执行此操作,但请尝试在外部的某处分配日期变量,如下所示:

var date=new Date();
var year=date.getFullYear(); //get year
var month=date.getMonth(); //get month

$('#example1').datepicker
({
    format: "MM yyyy",
    minViewMode: 1,
    autoclose: true,
    startDate: new Date(year, month, '01'), //set it here
    endDate: new Date(year+1, month, '31')
});

答案 1 :(得分:3)

  

我想要的是过去几个月被禁用以及任何月份   提前一年后被禁用

     

我尝试过使用minDate:“0”和maxDate:“1y”但它们不起作用。

你走在正确的轨道上。但是,而不是minDatemaxDate使用startDateendDate。像这样:

$('#example1').datepicker ({
    startDate: "-0m",
    endDate: "+1y",    
    ...
});

-0m仅允许本月和+1y仅允许最多一年。

小提琴:http://jsfiddle.net/abhitalks/RWY2X/34/

答案 2 :(得分:0)

将其用于禁用上个月和未来月份并启用当前月份和日期。

<script type="text/javascript">
$(document).ready(function () {
    var date = new Date();
    //Create Variable for first day of current month
    var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
    $("#txtDate").datepicker({
        endDate: new Date(),
        startDate: firstDay,
    });
});
</script>