Descubrí que necesitaba hacer tres cambios en el código fuente Datepicker para solucionar este problema. Estos son los cambios que he realizado:
- El método _getDefaultDate regresaron a la fecha actual cuando opción defaultDate era nula o desaparecidos (Este es el corazón del problema).
me cambió este método de esta ...
_getDefaultDate: function(inst) {
return this._restrictMinMax(inst,this._determineDate(inst,this._get(inst, "defaultDate"), new Date()));
}
a esta ....
_getDefaultDate: function(inst) {
var def = this._get(inst, "defaultDate");
return def !== null ? this._restrictMinMax(inst, this._determineDate(inst, def , new Date())): null;
},
- El _setDate método se ponía el día seleccionado para el día actual cuando nulo se pasó en la fecha parámetro. He cambiado a líneas para corregir esto:
he cambiado esta línea ...
inst.selectedDay = inst.currentDay = newDate.getDate();
a ...
inst.selectedDay = date == null? 0: inst.currentDay = newDate.getDate();
y esta línea ...
this._adjustInstDate(inst);
a ...
if (date != null) {
this._adjustInstDate(inst);
}
- Por último, el método _generateHTML no manejar un valor de retorno de null de _getDefaultDate.
Así que cambió esta línea ...
(defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime()) ?
a ...
(defaultDate != null && (defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime())) ?
Eso es todo. Ahora la opción selector de fechasdefaultDate responde de forma más intuitiva a un valor de nula ser pasado en o a esta opción es que falta.
$('#test').datepicker({ altField: '#alt'}); // No date selected
$('#test').datepicker({ altField: '#alt', defaultDate: null}); // No date selected
$('#test').datepicker({ altField: '#alt', defaultDate: 0}); // Today selected
$('#test').datepicker({ altField: '#alt', defaultDate: +1}); // Tomorrow selected
$('#test').datepicker({ altField: '#alt', defaultDate: -1}); // Yesterday selected
Aquí está una demostración en jsFiddle: Datepicker demo with defaultDate null
Tenga en cuenta: Estos cambios no se han probado exhaustivamente, lo que puede haber otras cuestiones derivadas del hecho de que el método _getDefaultDate ahora podría volver nulo. ¡Entonces haz tus propias pruebas primero! ;)
Espero que esto ayude a alguien! :)
¿realmente leen la @AaronMiller pregunta? –
Ciertamente lo hice. ¿Leíste mis comentarios antes de borrarlos? –
¿Lo hice? Yo no [email protected] –