年份的 JQuery Datepicker 下拉列表仅显示单年

Posted

技术标签:

【中文标题】年份的 JQuery Datepicker 下拉列表仅显示单年【英文标题】:JQuery Datepicker dropdown for year only showing single year 【发布时间】:2013-02-07 06:21:20 【问题描述】:

我在 2 个字段上有一个日期选择器: 开始日期和结束日期。选择开始日期后,结束日期日期选择器会更新最小和最大日期选项以及 yearRange 选项。

如果我选择 29/12/2013,用户只能从此处选择 10 天作为结束日期。

所以,我打开结束日期的日期选择器,它的 yearRange 为 2013:2014,changeYear 选项设置为 true。

但年份下拉列表仅显示 2013 年。2014 年不在列表中。

如果我点击日期选择器的右箭头(下一个)移动到下一年,它会移动到 2014,然后如果我点击年份下拉列表,现在会显示 2014。

$("#EndDate").datepicker("option", "yearRange", '2013:2014');

如果在此代码前放置警报,则年份的下拉菜单会按预期显示 2013 年和 2014 年。

我正在使用 JQuery 1.4.4

【问题讨论】:

【参考方案1】:

This question 似乎解决了同样的问题。您似乎没有正确的格式来指定您的日期范围。

【讨论】:

我相信这是阅读 JQuery 文档时 yearRange 的正确格式。如果没有,谁能告诉我正确的格式以及如果我在我的问题中显示的代码前面放一个警报为什么会显示它.... 你有没有看过我提供的链接? @Johnathan Wood - 我确实阅读了您强调的问题。但是,我使用了文档中列出的格式,并且年份下拉列表没有更新。但是,如果我输入警报,那么年份下拉列表会包含正确的年份。【参考方案2】:

找到解决方案:

原始代码在更改 yearRange 选项之前将 changeYear 选项设置为 true - 这不会在下拉年份列表中显示更新范围:

$("#EndDate").datepicker("option", "changeYear", true);
$("#EndDate").datepicker("option", "yearRange", yearRange);

在 yearRange 选项之后放置 changeYear 选项代码解决了该问题。现在下拉列表按预期显示年份范围。因此,排序很重要。

    $("#EndDate").datepicker("option", "yearRange", yearRange);
    $("#EndDate").datepicker("option", "changeYear", true);

【讨论】:

【参考方案3】:

试试这个:

$(function () 
       $("#txtDateofBirth").datepicker(

           changeYear: true,
           dateFormat: 'dd/mm/yy',
           yearRange: '1970:2025'
       
       );
   );

【讨论】:

以上是关于年份的 JQuery Datepicker 下拉列表仅显示单年的主要内容,如果未能解决你的问题,请参考以下文章

JQuery UI Datepicker,在下拉菜单中颠倒年份的顺序

年份的 JQuery Datepicker 下拉列表仅显示单年

Jquery datepicker下拉列表显示当前日期而不是所选日期

DatePicker 不设置年份,除非当原始年份超出下拉范围时显式更改下拉列表

Jquery Ui Datepicker 月/年下拉菜单在最新的 Firefox 中的弹出窗口中不起作用

Jquery datepicker 年份变化