10

我在申请表上有一个日期选择器。我们只允许出生日期在特定年龄范围内的申请。我启用了 ChangeYear 并将 YearRange 设置为“-65:-16”。我遇到的问题如下:

1 - 当我选择一个日期而没有先在年份下拉列表中选择某些内容时,我得到了正确的月份和日期,但我得到了 2016 年。

2 - 为了解决这个问题,我将 YearRange 设置为“n-65:n-16”。这会导致年份下拉列表仅显示当前年份(2010 年)。更奇怪的是,如果你选择一个日期,你仍然会得到正确的月份和日期,以及 2016 年。

这是我用来设置日期选择器的代码:

    <script type="text/javascript">
    $(document).ready(function (e) {
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

        function EndRequestHandler(sender, args) {
            $(function () {
                $("#DateOfBirth").datepicker({ yearRange: '-65:-13', changeMonth: true, changeYear: true, defaultDate: '1-1-1994', dateFormat: 'mm-dd-yy' })
            });
        }

        $(function () {
            $("#DateOfBirth").datepicker({ yearRange: '-65:-13', changeMonth: true, changeYear: true, defaultDate: '1-1-1994', dateFormat: 'mm-dd-yy' })
        });
    });
</script>

我希望这是我做错的事情,有人可以告诉我那是什么。谢谢你的帮助。

4

5 回答 5

20

尝试在当前年份使用“c”,例如:

$('.datepicker').datepicker({changeYear: true, yearRange : 'c-65:c+10'});

有关更多信息,请查看http://api.jqueryui.com/datepicker/#option-yearRange

于 2012-10-24T08:43:41.263 回答
1

检查您的 defaultDate 设置。当我将默认日期更改为指定年份范围之外的日期(即“1-1-2016”)时,我只能看到您所描述的内容。您发布的代码中的其他所有内容都对我有用。

于 2011-01-13T15:55:06.443 回答
1

也偶然发现了这一点。我没有进一步研究它,但调用顺序似乎有所不同。

这有效:

$('DIV#startdate').datepicker( 'option', { dateFormat: 'yy-mm-dd' } );
$('DIV#startdate').datepicker( 'setDate', '10-09-11' );
$('DIV#startdate').datepicker( 'option', { changeYear: true } );

这显示了只有 2010 年的年份列表框:

$('DIV#startdate').datepicker( 'option', { dateFormat: 'yy-mm-dd' } );
$('DIV#startdate').datepicker( 'option', { changeYear: true } );
$('DIV#startdate').datepicker( 'setDate', '10-09-11' );
于 2011-02-01T14:43:37.547 回答
1

尝试使用实际年份值给出范围。例如

$('.datepicker').datepicker({changeYear: true, yearRange : '1990:2010'})

他们还应该使用任何日期格式。

于 2013-04-05T05:14:13.553 回答
1

尝试使用 maxDate 和 minDate 选项,例如:

$(document).ready(function () {
    $("#datepicker").datepicker({
        yearRange: '-65:-13',
        changeMonth: true,
        changeYear: true,
        defultDate: '1-1-1994',
        dateFormat: 'mm-dd-yy',
        minDate:"-65Y",
        maxDate:"-13Y" 
    });
});
于 2015-06-29T08:42:45.677 回答