2010-08-17 8 views
6

Salut, je suis sûr qu'il doit y avoir un moyen facile de le faire, mais ne trouve pas l'option pour le définir n'importe où.jQuery datepicker, désactiver mois sélection

J'essaye de désactiver les boutons gauche/droit qui permettent à l'utilisateur de changer de mois. J'ai enlevé la liste déroulante des mois mais ne peux pas me débarasser des boutons.

$("#date").datepicker({ 
    changeMonth: false, 
    changeYear: false, 
    dateFormat: 'dd/mm/yy', 
    duration: 'fast' 
}); 

Répondre

10

Vous pouvez effectivement les désactiver à l'aide stepMonths en faisant les aller nulle part quand on clique dessus, comme celui-ci:

$("#date").datepicker({ 
    changeMonth: false, 
    changeYear: false, 
    dateFormat: 'dd/mm/yy', 
    duration: 'fast', 
    stepMonths: 0 
}); 

You can give it a try here

Ou, vous pouvez supprimer les boutons comme celui-ci:

$("#date").datepicker({ 
    changeMonth: false, 
    changeYear: false, 
    dateFormat: 'dd/mm/yy', 
    duration: 'fast' 
}).focus(function() { 
    $(".ui-datepicker-prev, .ui-datepicker-next").remove(); 
});​ 

You can give that a try here, t ses travaux parce que l'option par défaut showOn est focus, si vous utilisez un événement différent, il suffit de lier à après l'appel .datepicker() (donc son événement s'exécute en premier, vous ne pouvez pas cacher ce qui n'est pas encore créé).

+0

Merci Nick, ils ont tous deux fait l'affaire mais sont allés avec la suppression des boutons alltog éther. – JBoom

0

Je ne sais pas comment le faire directement dans jQuery (ou si c'est possible).

Mais si vous ne trouvez pas un moyen de le faire, vous pouvez toujours masquer les boutons dans css.

Les sélecteurs CSS que vous voulez sont (de mémoire afin que vous pourriez avoir besoin de vérifier) ​​

.ui-datepicker .ui-datepicker-prev, 
.ui-datepicker .ui-datepicker-next 
{ 
    display:none; 
} 
2

La solution mentionnée ne fonctionnait pas pour moi, j'ai développé ceci:

$('#datepicker').find('.ui-datepicker-next').remove(); 
$('#datepicker').find('.ui-datepicker-prev').remove(); 
1

Ceci est mon façon de faire datepicker choisir seulement l'année:

if (document.styleSheets[0].addRule) { 
    document.styleSheets[0].addRule(".ui-datepicker-calendar", "display: none;"); 
else { 
    document.styleSheets[0].insertRule(".ui-datepicker-calendar {display: none;}", 0); 
} 

.datepicker({  
        dateFormat: 'yy', 
        showMonthAfterYear: false, 
        changeMonth: false, 
        changeYear: true, 
        showButtonPanel: true, 
        stepMonths: 12, 
        monthNames: ["", "", "", "", "", "", "", "", "", "", "", "", "", ""], 
        onChangeMonthYear: function (year) { 
         $(this).val(year); 
        } 
      }); 
Questions connexes