j'utilise le sélecteur de date jquery l'icône de calendrier, l'image de déclenchement près de la zone de texte est par défaut en haut.
$(#textbox1).datepicker({
showOn: "button",
buttonImage: "calendar_1.png",
buttonImageOnly: true
)};
En inspectant l'élément avec firebug , j'ai ceci:
<img class="ui-datepicker-trigger" src="http://xxxxx/officeprime/assets/img/calendar.gif" alt="..." title="..."/>
Vous pouvez ensuite travailler avec cette classe CSS ui-datepicker-trigger
.
Ajouter un CSS personnalisé à votre page
<style>
.ui-datepicker-trigger { position:relative;top:{}px ;right:{}px ; height:{}px }
/* {} is the value according to your need */
</style>
Vous pouvez éditer la classe .ui-datepicker-trigger avec jQuery mais il est important de faire l'édition après la fonction datepicker.
Exemple:
$(#textbox1).datepicker({
showOn: "button",
buttonImage: "calendar_1.png",
buttonImageOnly: true )};
$(".ui-datepicker-trigger").css("margin-bottom","-6px");
Rien de tout cela n'a fonctionné pour moi. Il semble que jQuery définit la propriété height du bouton d’image lorsque vous quittez la fonction Ready. Donc, si vous essayez de définir la propriété height dans la fonction ready, elle sera écrasée à 26px. J'ai donc créé une fonction distincte à exécuter dans l'événement onload de la balise body. Il met à jour la propriété height du bouton à ce que je veux comme ceci:
// sample jQuery datepicker button tag: <img style="margin: 0px; padding: 2px; height: 26px; vertical-align: bottom;" class="ui-datepicker-trigger" >
var oDateCell = oTableRow.cells[2];
var sDateCellHTML = oDateCell.innerHTML;
var sRevisedHTML = sDateCellHTML.replace("height: 26px;", "height: 13px;");
oDateCell.innerHTML = sRevisedHTML;
J'ai encore travaillé sur cela et j'ai découvert que le code ci-dessus avait un bogue. Cela provoque l'échec de l'événement click et le calendrier ne s'affiche pas lorsque vous cliquez sur l'image. Je ne sais pas pourquoi, mais j'ai trouvé une meilleure méthode qui fonctionne. La méthode ci-dessus était une manière maladroite (paresseuse?) De changer de style. La bonne façon est comme ça:
var oTableRow = oTable.rows[iRow];
if (oTableRow.cells.length > 2)
{
var oDateCell = oTableRow.cells[2];
if (oDateCell.childNodes.length > 1)
{
var oImage = oDateCell.childNodes[1];
oImage.style.height = "13px";
}
}
Appliquer ce CSS:
.ui-datepicker-trigger {
position: absolute;
}
Si vous utilisez votre propre image personnalisée pour l'icône du calendrier, vous pouvez simplement créer l'image à la taille souhaitée. Dans mon cas, la hauteur de ma zone de saisie était 24px
et la taille de l'icône, 16X16
. Je viens d'éditer la taille de l'image et de la rendre 24X24
et le problème a été résolu.