0

(已编辑)

我将 jquery.mtz.monthpicker 与 jquery 一起使用。

我想限制未来的月份,但我认为 jquery.ui.datepicker 中没有像“maxDate”这样的选项。

$('input[name*="from"]').monthpicker({startYear:1970,finalYear:<?=date('Y')?>,pattern:'yyyy-mm'}).bind('monthpicker-show', function (e, year) {
    $('input[name*="from"]').monthpicker('disableMonths', []); // (re)enables all
    if (year === <?=date('Y')?> ) {

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

        $('input[name*="from"]').monthpicker('disableMonths', months);
    }
});

我是这样编码的。只能选择当前和过去的月份。但它不起作用。问题是什么?

4

1 回答 1

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

$('input[name*="from"]').monthpicker({startYear:1970,finalYear:<?=date('Y')?>,pattern:'yyyy-mm'});
for(var i = 0; i < $('input[name*="from"]').length; i++){
$($('input[name*="from"]')[i]).monthpicker("disableMonths",months);
$($('input[name*="from"]')[i]).monthpicker().bind('monthpicker-change-year', function(e, year){

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

我解决了。

首先,移除了方法链。

其次,monthpicker-show 事件没有“年”参数。

我认为有关键点。

于 2013-09-23T00:43:36.460 回答