2012-01-09 20 views
5

Quiero establecer los valores del campo datepicker y el altField cuando la página está cargada, y me preguntaba si hay una opción en el selector de fechas para hacerlo automáticamente (es decir, sin tener que llame al setDate).Establecer automáticamente la fecha seleccionada en altField en la carga

Sé que si hago algo como esto:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:+7}); 

Con date-div ser un div, la fecha predeterminada se añade automáticamente al campo date-input cuando se carga la página. Pero si utilizo un campo de texto en lugar de div, no establece los valores automáticamente (tengo que llamar al setDate en una línea separada).

Tengo curiosidad por esto, ya lo he implementado llamando a setDate, pero me gustaría saber si hay algo para hacerlo automáticamente y, si no, ¿por qué? (ya que funciona cuando se usa un div para mostrar el calendario).

Respuesta

-2

No es 100% elegante, ya que necesita la repetición, pero funciona para mí:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:$("#date-input").val()}); 
+0

Su respuesta no parece funcionar. Tal vez debido a las diferencias en el formato –

+1

-1 esto solo funciona si 'altFormat' es lo mismo que' dateFormat' ([docs] (http://api.jqueryui.com/datepicker/#utility- formatDate)). – Stijn

+0

si funciona bajo condiciones adicionales, entonces, ¿por qué ha votado negativamente? No entiendo que me castiguen por dar una solución que funciona – Kodak

0

Su mejor opción para ajustar el defaultDate es analizar el valor de la altField con una biblioteca como Moment.js, porque las implementaciones de su navegador para las fechas de análisis no son confiables. Por ejemplo, si su altField es el campo antes de su campo selector de fechas y está en formato ISO 8601, usted puede hacer esto:

$(this).datepicker({ 
    altField: $(this).prev(), 
    altFormat: $.datepicker.ISO_8601, 
    defaultDate: moment($(this).prev().val()).toDate() 
}); 

Eso sólo se configurará la fecha seleccionada por defecto al abrir el calendario. Si también desea rellenar el campo datepicker, puede hacerlo después de haber inicializado el datepicker con el código anterior:

$(this).datepicker("setDate", moment($(this).prev().val()).toDate()); 
Cuestiones relacionadas