jQuery UI Datepicker est codé de manière à toujours mettre en évidence la locale de l'utilisateur, la date à l'aide de la classe ui-state-highlight
. Il n'y a pas de possibilité de changer cela.
Une méthode, décrite de la même façon dans d'autres réponses à des questions connexes, est de remplacer le CSS pour la classe pour correspondre ui-state-default
de votre thème, par exemple:
.ui-state-highlight {
border: 1px solid #d3d3d3;
background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
color: #555555;
}
Cependant ce n'est pas très utile si vous utilisez des thèmes dynamiques, ou si votre intention est de mettre en évidence un autre jour (par exemple, pour avoir "aujourd'hui" sont fondées sur votre horloge du serveur plutôt que sur le client).
Une approche alternative est de remplacer le datepicker prototype qui est responsable pour la mise en évidence de la journée en cours.
En supposant que vous utilisez une version réduite de l'INTERFACE utilisateur javascript, les extraits suivants peuvent répondre à ces préoccupations.
Si votre objectif est de prévenir mettant en évidence la journée en cours tout à fait:
// copy existing _generateHTML method
var _generateHTML = jQuery.datepicker.constructor.prototype._generateHTML;
// remove the string "ui-state-highlight"
_generateHtml.toString().replace(' ui-state-highlight', '');
// and replace the prototype method
eval('jQuery.datepicker.constructor.prototype._generateHTML = ' + _generateHTML);
Cela modifie le code correspondant (unminimized pour des raisons de lisibilité) à partir de:
[...](printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') + [...]
pour
[...](printDate.getTime() == today.getTime() ? '' : '') + [...]
Si votre objectif est de changer le datepicker de la définition de "aujourd'hui":
var useMyDateNotYours = '07/28/2014';
// copy existing _generateHTML method
var _generateHTML = jQuery.datepicker.constructor.prototype._generateHTML;
// set "today" to your own Date()-compatible date
_generateHTML.toString().replace('new Date,', 'new Date(useMyDateNotYours),');
// and replace the prototype method
eval('jQuery.datepicker.constructor.prototype._generateHTML = ' + _generateHTML);
Cela modifie le code correspondant (unminimized pour des raisons de lisibilité) à partir de:
[...]var today = new Date();[...]
pour
[...]var today = new Date(useMyDateNotYours);[...]
// Note that in the minimized version, the line above take the form `L=new Date,`
// (part of a list of variable declarations, and Date is instantiated without parenthesis)
Au lieu de useMyDateNotYours
vous pouvez bien sûr aussi au lieu d'injecter une chaîne de caractères, la fonction, ou ce qui convient à vos besoins.