Pregunta

Tengo un selector de fecha en un formulario de solicitud. Que sólo permiten aplicaciones en las que la fecha de nacimiento está dentro de cierto rango de edad. He activado ChangeYear y establecer el YearRange a "-65: 16". Los problemas que estoy teniendo son los siguientes:

1 - Cuando selecciono una fecha sin primero seleccionar algo en el menú desplegable años, me sale el mes y el día correcto, pero me da 2016 como un año.

2 - Tratando de arreglar esto establece el YearRange a "n-65: N-16". Eso hace que el menú desplegable años para mostrar sólo el año en curso (2010). Aún más extraño es que si selecciona una fecha, sigue recibiendo el mes y el día correcto, y el año 2016.

Este es el código que utilizo para configurar el selector de fechas:

    <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>

Espero que esto es algo que he hecho mal, y alguien me puede decir lo que es. Gracias por cualquier ayuda.

¿Fue útil?

Solución

Trate de usar 'c' para el año en curso como:

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

para más información ver http://api.jqueryui.com/datepicker/#option- yearRange

Otros consejos

Compruebe su configuración defaultDate. Sólo puedo ver lo que estás describiendo cuando cambio la fecha predeterminada a algo que está fuera del rango especificado años (es decir, '01/01/2016'.) Todo lo demás en el código que envió trabajó para mí.

Tropezamos con esto también. No investigué más a fondo, pero el orden de llamada parece hacer una diferencia.

Este trabajos:

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

Esto muestra el cuadro de lista con sólo el año 2010:

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

Trate de darle el rango de valores del año actual. por ejemplo.

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

También debería funcionar con cualquier dateformat.

Trate de usar la opción MaxDate y MinDate como:

$(document).ready(function () {
    $("#datepicker").datepicker({
        yearRange: '-65:-13',
        changeMonth: true,
        changeYear: true,
        defultDate: '1-1-1994',
        dateFormat: 'mm-dd-yy',
        minDate:"-65Y",
        maxDate:"-13Y" 
    });
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top