jQueryUI DatePicker YearRange и ChangeYear проблемы - PullRequest
10 голосов
/ 22 декабря 2010

У меня есть дата выбора в форме заявки. Мы разрешаем заявки только в тех случаях, когда дата рождения находится в определенном возрастном диапазоне. Я включил 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>

Я надеюсь, что это то, что я сделал неправильно, и кто-то может сказать мне, что это такое. Спасибо за любую помощь.

Ответы [ 5 ]

19 голосов
/ 24 октября 2012

Попробуйте использовать 'c' для текущего года, например:

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

для просмотра дополнительной информации http://api.jqueryui.com/datepicker/#option-yearRange

1 голос
/ 29 июня 2015

Попробуйте использовать опции 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" 
    });
});
1 голос
/ 05 апреля 2013

Попробуйте указать диапазон с фактическими значениями года. например,

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

Они также должны работать с любым форматом даты.

1 голос
/ 01 февраля 2011

Наткнулся и на это.Я не исследовал это дальше, но порядок вызовов, кажется, имеет значение.

это работает:

$('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' );
1 голос
/ 13 января 2011

Проверьте настройки по умолчанию.Я вижу только то, что вы описываете, когда я меняю дату по умолчанию на что-то за пределами указанного диапазона лет (т. Е. «1-1-2016»). Все остальное в опубликованном вами коде сработало для меня.

...