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');
...