He leído que se pueden deshabilitar fechas del calendario a partir de un rango dado o mediante las propiedades
minDate
y
maxDate
, tal y como se explica
aquí, pero, para tu caso, se me ocurre otra alternativa. Podrías seleccionar una fecha en el primer calendario y automáticamente asignar al segundo la fecha siguiente, pero si el usuario selecciona una fecha menor en el segundo calendario, se le muestra un mensaje en el que se le avisa que no lo debe de hacer y se le asigna, nuevamente, la fecha siguiente a la elegida en el primer calendario. Para darle mayor seguridad al proceso, inicialmente, el segundo calendario estaría deshabilitado y solo se habilitaría al momento se seleccionar una fecha en el primero.
Código Javascript
:
Ver originalvar foo = $("#foo"),
bar = $("#bar");
foo.datepicker({
onSelect: function(){
var fecha = $(this).datepicker("getDate");
fecha.setDate(fecha.getDate() + 1); //Le sumo 1 día
bar.datepicker("setDate", fecha);
if (bar.prop("disabled")){
bar.prop("disabled", false);
}
}
});
bar.datepicker({
onSelect: function(){
var primero = foo.datepicker("getDate"),
segundo = $(this).datepicker("getDate");
if (segundo <= primero){
alert("Debe de seleccionar una fecha mayor");
primero.setDate(primero.getDate() + 1); //Le sumo 1 día
$(this).datepicker("setDate", primero);
}
}
});
DEMO
Como la propiedad
getDate
devuelve un objeto
Date
, puedo realizar la comparación directamente y aplicar cualquiera de los métodos de dicho objeto.
Saludos