如何在jquery monthpicker中限制未来几个月

时间:2015-05-28 05:40:11

标签: jquery jquery-ui jquery-plugins

我希望禁用未来几个月,并在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]);
}
});

3 个答案:

答案 0 :(得分: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 /

答案 1 :(得分:0)

您可以删除月份列表中当前的所有月份,并将列表作为参数传递给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]);
    }
});

答案 2 :(得分:0)

最后我找到了解决方案。这对我有用。

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', []);
}
});