2009-10-29 25 views
12

Estoy tratando de obtener un atributo de un selector de fecha para extraer la fecha de forma dinámica, sin embargo, obtengo errores de excepción no detectados cuando intento establecerlo en una variable.jquery datepicker fecha predeterminada

Los errores solo ocurren en páginas que NO tienen el calendario (en línea). ¿Cómo puedo pulsar la etiqueta rel del selector sin obtener este error?

//Event Calendar Home Page and Listing 
function calendar_picker() { 
$("#calendar-inline").datepicker({ 
    //defaultDate: $(this).attr('rel'), 
    dateformat: 'yy-mm-dd', 
    maxDate: '+1y', 
    minDate:'-0d', 
    hideIfNoPrevNext: true, 
    showButtonPanel: false, 
    navigationAsDateFormat: false, 
    onSelect: function(dateText, inst) { 
       var d = new Date(dateText); 
    var fmt1 = $.datepicker.formatDate("yy-mm-dd", d); 
    $.ajax({ 
    type: "POST", 
    url: "/events/listing/all/20/", 
    dataType: "html", 
         date: "event_date="+fmt1, 
    success: function(){ 
         window.location.href= "/events/browse/"+fmt1; 
    }});}}); 
} 

ACTUALIZACIÓN correcta, la línea comentada es lo que yo estoy teniendo problemas con, Cuál es la forma correcta de sacar el atributo rel de # calendario en línea desde el interior de este. Todos los intentos de tiros de un error sin capturar en js

Actualización 2

function calendar_picker() { 
var myDate = new Date($("#calendar-inline").attr('rel')); 
    $("#calendar-inline").datepicker({ 

    dateformat: 'yy-mm-dd', 
    defaultDate:myDate, 

Solución:

function calendar_picker() { 
var myDate = null; 
if ($("#calendar-inline").attr('rel') != null) { 
    myDate = $.datepicker.parseDate("yy-mm-dd", $("#calendar-inline").attr('rel')); 
    } 
    $("#calendar-inline").datepicker({ 

    dateformat: 'yy-mm-dd', 
    defaultDate:myDate, 

Respuesta

9

probar esto:

defaultDate: $("#calendar-inline").attr('rel') 

Esto intente tirar de la fecha a partir del atributo 'rel' y si eso no existe debe devolver null. Cuando se pasa null a la fecha predeterminada de datepicker, se usará hoy como fecha predeterminada.

+0

Esto no funciona, la fecha debe ser pa rsed y no lo es. Traté de poner manualmente una fecha en una cadena y fue con 1 año de anticipación. – matthewb

+0

¿Qué formato es la fecha en el atributo rel? Debería poder crear una var como esta: var myDate = new Date ($ ("# calendar-inline"). Attr ('rel')); Si pasa esa variable al valor predeterminado, debería funcionar ... si no, ¿puede publicar algo de HTML? –

+0

Los datos rel son "2009-11-19" cuando paso lo que sugiere ver más arriba para el nuevo código js, ​​ahora simplemente se establece de forma predeterminada hoy, sin importar lo que esté en el rel. – matthewb

0

Su pregunta es un poco claro - lo que estoy asumiendo es que su el problema ocurre en la línea comentada.

Si eso es correcto, entonces creo que su problema está en el "esto". No estoy muy seguro de lo que espera que sea "esto", pero dentro de la función va a ser el objeto ventana.

Si estoy en el camino equivocado, actualice la pregunta con algo más de información.

0

esto funciona para mí:

var nowDate = new Date(year, month, day, hours, minutes, seconds, milliseconds); 

continuación, en el selector de fechas, se establece:

defaultDate: nowDate; 
8

podemos establecer la fecha predeterminada por esto:

<script type="text/javascript"> 
$(function() {    
    $("#date").datepicker({ 
     changeMonth: true, 
     changeYear: true, 
     yearRange: '1920:2010', 
     dateFormat : 'dd-mm-yy', 
     defaultDate: new Date(2000,01,01) 
    }); 
}); 
</script> 

Ver http://jqueryui.com/demos/datepicker/#option-defaultDate

+0

'(2000,01,01)' debería ser '(2000,1,1)' – zsitro

Cuestiones relacionadas