如何在 jquery monthpicker 中限制未来月份

how to restrict future months in jquery monthpicker

我希望禁用未来月份并在 jquery monthpicker 中显示当前月份之前的月份。这是代码

var picker = jQuery('#SearchVal').MonthPicker({
 maxDate: "0m",
ShowIcon: false,
OnAfterChooseMonth: function(){
    var elts = picker.val().split('/');
    picker.val(monthsLabels[parseInt(elts[0])-1]+', '+elts[1]);
}
});
You can try this. This is working for me.

$('#my_widget').monthpicker('disableMonths', [1, 2, 11, 12]);
$('#my_widget').monthpicker('disableMonths', []); // re-enables all months

参考来源:月份选择器 Jquery->lucianocosta.info/jquery.mtz.monthpicker/

您可以从月份列表中删除当前月份之后的所有月份,并将该列表作为参数传递给 monthpicker

var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var current = new Date().getMonth();
months.splice(0, current);
var picker = jQuery('#SearchVal').MonthPicker({
    maxDate: "0m",
    ShowIcon: false,
    month: months,
    OnAfterChooseMonth: function(){
      var elts = picker.val().split('/');
      picker.val(monthsLabels[parseInt(elts[0])-1]+', '+elts[1]);
    }
});

我终于找到了解决办法。这对我有用。

var months = new Array();
var j = 0;
for (var i = <?=date('n')?>+1; i <= 12; i++)
{
    months[j++] = i;
}

jQuery('#SearchVal').monthpicker({startYear:2000,finalYear:<?=date('Y')?>,pattern:'yyyy-mm'});
for(var i = 0; i < jQuery('#SearchVal').length; i++){
jQuery(jQuery('#SearchVal')[i]).monthpicker("disableMonths",months);
jQuery(jQuery('#SearchVal')[i]).monthpicker().bind('monthpicker-change-year', function(e, year){

var item = jQuery(e.currentTarget);
if(year === '<?=date("Y")?>'){
 jQuery(item).monthpicker('disableMonths', months);
} else {
jQuery(item).monthpicker('disableMonths', []);
}
});