Jquery ui 是否在选择器中显示超出日期范围的月份?

Jquery ui 是否在选择器中显示超出日期范围的月份?,jquery-ui,jquery-ui-datepicker,Jquery Ui,Jquery Ui Datepicker,我使用的是在我的网站上为消费者选择出生日期。当前通过下拉列表显示月份和年份,例如,我将年份限制为-18y,通过maxDate,月份下拉列表不会显示选择1993年时的所有月份。它只显示最长月份之前的月份 在可用性测试中,我们发现我们的人口统计倾向于点击他们出生的月份,然后点击年份,然后点击日期 是否有方法显示所有月份,即使该月份内的日期不可选择 以下是用于显示日期选择器的代码: $('.DobWidget').datepicker({ showOn: 'both',

我使用的是在我的网站上为消费者选择出生日期。当前通过下拉列表显示月份和年份,例如,我将年份限制为
-18y
,通过
maxDate
,月份下拉列表不会显示选择1993年时的所有月份。它只显示最长月份之前的月份

在可用性测试中,我们发现我们的人口统计倾向于点击他们出生的月份,然后点击年份,然后点击日期

是否有方法显示所有月份,即使该月份内的日期不可选择

以下是用于显示日期选择器的代码:

$('.DobWidget').datepicker({
    showOn: 'both',        
    buttonImage: '/media/img/admin/icon_calendar.gif',
    buttonImageOnly: true, 
    dateFormat: js_date_format, // mm/dd/yyyy  
    constrainInput: false, // Handled server-side for type-in.
    changeMonth: true,
    changeYear: true,
    maxDate: '-18y',
    minDate: '-110y',
    showButtonPanel: true,
    onChangeMonthYear: function(year, month, inst) {
        if (inst.currentDay != 0) {     
            $(this).datepicker("setDate", new Date(year, month - 1, inst.currentDay));
        }                  
    }
});
我目前正在使用jQueryUI v.1.8.16和jQuery v.1.6.3,这两个版本都是由Google AJAX API提供的。

修复jQuery ui 1.8.17 我也遇到了这个问题,我是通过修改jquery代码中的一些内容开始工作的。现在我看到了所有的月份,我可以选择它们,但是日期仍然是不可选择的

在if语句的_generateHTML函数中,添加maxDraw.setMonth('11'):


我看1990年没有问题。可能是1993年吗?你是对的。我有两个范围,21和18。我把他们混为一谈作为例子。1993年是正确的一年。
if (maxDate) {
            maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
            maxDraw.setMonth('11');
            while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
                ...
            }
        }
for (var month = 0; month < 12; month++) {
                if ((!inMinYear || month >= minDate.getMonth()) &&
                        (!inMaxYear || month <= maxDate.getMonth()))
                    monthHtml += '<option value="' + month + '"' +
                        (month == drawMonth ? ' selected="selected"' : '') +
                        '>' + monthNamesShort[month] + '</option>';
            }
for (var month = 0; month < 12; month++) {
                if ((!inMinYear || month >= minDate.getMonth()) &&
                        (!inMaxYear || month <= 11))
                    monthHtml += '<option value="' + month + '"' +
                        (month == drawMonth ? ' selected="selected"' : '') +
                        '>' + monthNamesShort[month] + '</option>';
            }
...
var maxDate = this._getMinMaxDate(inst, 'max');
        maxDate.setMonth('11');
        var newDate = (minDate && date < minDate ? minDate : date);
...
var minDate = this._getMinMaxDate(inst, 'min');
        var maxDate = this._getMinMaxDate(inst, 'max');
        maxDate.setMonth('11');
...