Jquery datepicker显示一年中的所有日期

时间:2015-08-06 11:38:46

标签: javascript jquery jquery-ui datepicker

我在文本框中使用jquery datepicker来输入用户出生日期。出于验证目的,我将最大年份设置为" -16Y"在当年,我将年份范围设定为yearRange: '1920:c'。问题是当我在浏览器中显示它时,datepicker没有显示最大年份的所有日子(即1999年)。我认为jquery将它设置为当天的最大日期(8月6日)。那么可以解决这个问题吗?

这是我的datepicker代码:

$("#YearOFBirth").datepicker({

            maxDate: "-16Y",
            //showOn: "both",
           // buttonImage: "",
            dateFormat: "mm/dd/yy",
            changeMonth: true,
            changeYear: true,
            yearRange: '1920:c'
        }).keydown(function (e) {
            if (e.keyCode == 8 || e.keyCode == 46) {
                $(e.target).val("");
            } else {
                e.preventDefault();
                return false;
            }
        });

正如你在这张图片中看到的那样,6日后的所有日子都被禁用,这对1999年来说是不正确的

enter image description here

注意:我搜索了这个,但我一无所获。我甚至不知道如何正确地提出这个问题

1 个答案:

答案 0 :(得分:3)

自己计算maxDate:

var maxDate = new Date(new Date().getFullYear() - 16, 11, 31);

然后将maxDate提供给您的datePicker。像这样,你有一年中所有可用的日子,这是16年前。由于今年的最后一天始终是YYYY-12-31,因此硬编码也不错。