2010-08-17 20 views
6

Hallo, ich bin mir sicher, dass es einen einfachen Weg gibt, dies zu tun, aber ich kann die Option nicht finden, es überall einzustellen.jQuery datepicker, monatelange Auswahl deaktivieren

Ich versuche, die links/rechts-Tasten zu deaktivieren, die dem Benutzer erlauben, Monate zu ändern. Ich habe die Drop-Down-Liste der Monate entfernt, kann aber die Buttons nicht loswerden.

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

Antwort

10

Sie können sie effektiv deaktivieren mit stepMonths von ihnen nirgendwo machen gehen, wenn darauf geklickt, wie folgt aus:

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

You can give it a try here

Oder Sie die Tasten wie folgt entfernen konnte:

$("#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 sein funktioniert, weil die Standardeinstellung showOn Option ist focus, wenn Sie ein anderes Ereignis verwenden, nur an die nach den Aufruf .datepicker() binden (so dass sein Ereignis zuerst ausgeführt wird, können Sie nicht ausblenden, was noch nicht erstellt wurde).

+0

Dank Nick, sie beide haben den Trick, aber sind mit dem Entfernen der Tasten alltog gegangen Äther. – JBoom

0

Ich weiß nicht, wie es direkt in jQuery (oder wenn es möglich ist).

Aber wenn Sie keinen Weg finden, es dort zu tun, könnten Sie immer nur die Tasten in CSS ausblenden.

Die CSS-Selektoren Sie sind (aus dem Speicher, so dass Sie überprüfen müssen möglicherweise) für mich

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

Die genannte Lösung nicht funktioniert hat, entwickelte ich diese:

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

Das ist mein weg zu machen datepicker wählen nur jahr:

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); 
        } 
      }); 
Verwandte Themen