2010-02-03 8 views
6

estoy notando este problema en IE 7 + 8jQuery UI selector de fechas IE recargar o salta a la parte superior de la página

$('#event-start-date').datepicker({dateFormat:'DD MM dd yy',minDate:'-0d'}); 

Al recoger la fecha en IE 7 o 8 de la página va a # y recargas la página raíz

estoy usando jQuery 1.4.0 y 1.7.2 ui

+0

Parece que el manejador de clics no devuelve falso. Pero espero que esto suceda en todos los navegadores si ese es el caso. – prodigitalson

+0

La actualización a la versión 1.4.1 solucionó el problema, ya que estaba bien en 1.3.2 – matthewb

+0

Parece que en los problemas 1.4.2 y 1.8.4 ha vuelto (si se solucionó). –

Respuesta

17

que he experimentado el mismo problema con jQuery 1.4.2 usando IE7. Esto solo me pasa cuando uso un cuadro de diálogo modal. El marcador de fecha aparece en la página muy bien, pero al seleccionar una fecha, se te redirige al # fragmento.

He encontrado una solución que es viable si no es deseable aquí: http://forum.jquery.com/topic/modal-dialog-with-datepicker

Básicamente que acaba de rasgar el href fuera de la caja en el selecto:

.datepicker({ onSelect: function() { $(".ui-datepicker a").removeAttr("href"); } }); 

O, si está utilizando el selector de fechas de contenido que se carga dinámicamente y re-unión es posible que tenga que perder la primera clase:

$("#your_text_box_id").removeClass('hasDatepicker').datepicker({ onSelect: function() { $(".ui-datepicker a").removeAttr("href"); } }); 

me tomó un tiempo para encontrar esto debido a los muchos otros problemas con jquery datepickers y IE, ve figura.

+1

¡Muchas gracias por esto! Desearía que agreguen esto al código de jQuery. –

+0

Esto me salvó por el día. ¡Gracias! – Stephen

+0

por lo tanto, bonificación, buen aspecto –

1

Tengo el mismo problema con FF 3.6.13, Jquery 1.5.0 entregado por jquery CDN y jqueryui 1.8.9.

Extremadamente extraño, solo está sucediendo en ALGUNAS computadoras con la misma versión de firefox, con cachés despejados.

Sin embargo, esta corrección funcionó para mí. es decir,

$(".datepicker").datepicker({ 
    dateFormat: "yy-mm-dd", 
    changeMonth: true, 
    changeYear: true, 
    numberOfMonths: 2, 
    showButtonPanel: true, 
    onSelect: function() { 
    $(".ui-datepicker a").removeAttr("href"); 
    } 
}); 

El único problema es que ahora ignora el evento .change. Lo arreglé agregando $(this).change():

$(".datepicker").datepicker({ 
    dateFormat: "yy-mm-dd", 
    changeMonth: true, 
    changeYear: true, 
    numberOfMonths: 2, 
    showButtonPanel: true, 
    onSelect: function() { 
    $(".ui-datepicker a").removeAttr("href"); 
    $(this).change(); 
    } 
}); 

$(".date_unix").datepicker({ 
    dateFormat: "@", 
    changeMonth: true, 
    changeYear: true, 
    numberOfMonths: 2, 
    showButtonPanel: true, 
    onSelect: function() { 
    $(".ui-datepicker a").removeAttr("href"); 
    $(this).change(); 
    } 
}); 
+1

Con esta solución, las opciones como 'minDate' y' maxDate' no se ignoran (a diferencia de la otra respuesta). – zuluk

Cuestiones relacionadas