2010-08-17 34 views
6

Witam jestem pewien, że musi być prosty sposób, aby to zrobić, ale nie można znaleźć opcji, aby ustawić go w dowolnym miejscu.datepicker jQuery, wyłącz wybór miesiąca

Próbuję wyłączyć lewy/prawy przycisk, który pozwala użytkownikowi na zmianę miesięcy. Usunąłem listę rozwijaną miesięcy, ale nie mogę pozbyć się przycisków.

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

Odpowiedz

10

można skutecznie wyłączyć je za pomocą stepMonths poprzez ich donikąd po kliknięciu w ten sposób:

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

You can give it a try here

Albo, można usunąć przycisków tak:

$("#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 jego prace, ponieważ domyślną opcją jest showOn jest focus, jeśli używasz innego zdarzenia, po prostu połącz się z tym po wywołaniu .datepicker() (więc jego zdarzenie jest uruchamiane jako pierwsze, nie można ukryć tego, co nie zostało jeszcze utworzone).

+0

Dzięki Nick, obaj zrobili lewę, ale poszli z usunięciem przycisków alltog eter. – JBoom

0

Nie wiem, jak to zrobić bezpośrednio w jQuery (lub jeśli jest to możliwe).

Ale jeśli nie możesz znaleźć sposobu, aby to zrobić, zawsze możesz po prostu ukryć przyciski w css.

Selektory CSS chcesz są (z pamięci, więc może trzeba sprawdzić)

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

Wspomniane rozwiązanie nie działa dla mnie, rozwinął to:

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

To jest mój sposób, aby wybrać datepicker tylko rok:

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); 
        } 
      }); 
Powiązane problemy