【问题标题】:Jquery datepicker display all days of month for a yearJquery datepicker 显示一年中的所有日期
【发布时间】:2015-08-06 11:38:46
【问题描述】:

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

这是我的日期选择器代码:

$("#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 年是不正确的

注意:我对此进行了搜索,但一无所获。我什至不知道如何正确地问这个问题

【问题讨论】:

  • 好友今天是 2015 年 8 月 6 日。正好是 -16 年。您的代码是正确的。
  • @Bugfixer 我知道先生,但正如您在 1999 年看到的那样,我无法选择 6 后的任何一天
  • 尝试 1999 年 7 月。所有日子都可用。
  • 但是如果用户需要选择 1999 年 8 月 23 日作为他的生日呢
  • 嗯,那么用户年龄小于 16 岁?

标签: javascript jquery jquery-ui datepicker


【解决方案1】:

自己计算 maxDate:

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

然后将maxDate 提供给您的日期选择器。像这样,您拥有 16 年前一年中的所有可用时间。由于一年中的最后一天总是 YYYY-12-31,因此硬编码是不错的做法。

【讨论】:

  • 谢谢先生!! ...你是救生员
猜你喜欢
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 2015-12-07
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
相关资源
最近更新 更多