2012-09-13 65 views
6

Tengo un pequeño problema con el JQuery datePicker, sospecho que es solo una cuestión de una configuración que he pasado por alto o que me he equivocado.jquery datepicker rango de año predeterminado

Si nos fijamos en este sencillo violín: JS Fiddle

Verás que he establecido el rango de años, por lo que el por defecto al hacer clic en la entrada se abrirá hasta el 1994, pero si a continuación, haga clic en cualquiera de esas fechas, por ejemplo 3 de septiembre, realmente lo pondrá en la entrada como todavía en 2012, en lugar del año que se selecciona en el menú desplegable.

¿Cómo puedo hacerlo para que use el año correcto sin tener que cambiar el menú desplegable y luego volver a cambiarlo?

Saludos.

+0

tal vez ya está lleno de errores como code.google.com/p/jquery-datepicker/issues/detail?id=177 – Adrian

+0

Ese no es el mismo error que esta podría ser ... –

+0

Parece ser un error de Datepicker Jquery Plugin ... Tengo el mismo problema con: 'yearRange:" 1994: 2010 "' – Aelios

Respuesta

5

Extraño, pero agregando defaultDate:"1994-01-01" a las opciones de datepicker parece solucionarlo.

Fiddle

0

Creo que me dieron la razón .. Es porque yearRange: simplemente restringir el rango en el menú desplegable solamente. Simplemente cambia la lista nada más.

Ellos mansión esto aquí ..

http://jqueryui.com/demos/datepicker/#option-yearRange [Tenga en cuenta que esta opción sólo afecta a lo que aparece en la lista desplegable, para restringir el cual fechas elegidas utilizar las opciones de MaxDate MinDate y/o.]

Para comprobar esto ... configure el selector de fecha como se indica a continuación y encontrará la desactivación de todas las fechas. porque nos aserrado la calandra de 2012 no 1994

$('.datePicker').datepicker({ 
     dateFormat: 'yy-mm-dd', 
     changeYear: true, 
     changeMonth: true, 
     yearRange: "-18:-12", 
     maxDate: new Date(2012,1-1,1) 

    }); 

Para solucionarlo tienes que utilizar defaultDate, así como MinDate y MaxDate

espero que sea clara

7

Como otros han sugerido, tienes que establecer el DefaultDate. Sin embargo, a diferencia de las otras soluciones, no desea codificar la fecha ya que su lista desplegable se actualizará a medida que pasen los años, ya que está haciendo una lista relativa.

Prueba este lugar ...

function loadDatePicker() { 
    $('.datePicker').datepicker({ 
     dateFormat: 'yy-mm-dd', 
     changeYear: true, 
     changeMonth: true, 
     yearRange: "-18:-12", 
     defaultDate:"-18y-m-d" // Relative year/month/day 
    }); 
} 
+0

Gracias. La forma en que lo incorporé fue simplemente disminuir el año actual en 18 y guardarlo en lugar de un año realmente codificado, pero también probaré el tuyo. –

+1

@jascav Esta es la mejor manera. – programmer138200

+0

Esta debería ser la mejor respuesta, ya que hace el trabajo sin hardcoding o computación. –