7

Ich möchte nur deaktivieren Schaltfläche von Datepicker Direktive in eckigen js. Zur Zeit gibt es drei Schaltflächen am unteren Rand der eckigen js datePicker-Direktive (Heute, löschen und schließen), gibt es eine Möglichkeit, diese Schaltflächen konfigurierbar zu machen, so dass ich eine der Schaltflächen ausblenden kann.hide only clear button in eckig js datepicker Direktive

Die Date-Picker, die ich verwende, verwendet Ui-Bootstrap-Bibliothek.

+0

können Sie uns vielleicht ein paar Screenshots? Was hast du auch versucht? –

+0

Wenn Sie eine Demo von Ihrem Fall in, sagen Plnrkr.co Sandbox, die es leichter für die Zuschauer Ihnen helfen könnte – shershen

+0

Ich stimme den Antworten für das tun dies über CSS. Es gibt keine andere schnelle Problemumgehung oder verfügbare verfügbare Optionen, um diese Schaltfläche zu entfernen. Also entweder die schnelle und einfache Methode (css) oder die komplexere Methode, indem Sie die Vorlagendatei ändern, was nicht immer für Unternehmensanwendungen oder solche, die bower verwenden, möglich ist. – geostima

Antwort

4

Momentan gibt es jetzt die Möglichkeit, einzelne Schaltflächen in der Datepicker-Symbolleiste durch Optionen in der Direktive auszublenden. Sie können die Vorlage überschreiben und die Schaltfläche "Löschen" entfernen. Dies ist jedoch ein globaler Patch und bietet kein Verbergen/Anzeigen basierend auf einer Bedingung. Sie könnten eine Klasse erstellen, die auf die Schaltfläche Sie, da dies zeigt, ausblenden möchten Ziele plunk

.datepicker-noclear [ng-click="select(null)"] { 
     display: none; 
    } 

obwohl das eine fragile Abhilfe ist.

Ich würde vorschlagen, eine Feature-Anfrage senden, um die Option, welche Schaltflächen sind in der Symbolleiste verfügbar.

0

Weiter zu Rob Js Lösung, wenn wir eine ng-Klasse = {"require": "vm.required"} zum übergeordneten div der datepicker-Eingabe hinzufügen oder einfach eine Klasse namens require zum div hinzufügen. Dann nutzen Sie die Magie CSS, um die Löschtaste auf den Wert der vm.required je ein- oder ausblenden:

.require button[ng-click^="select(null)"] { 
    display: none; 
} 
3

Einfach, ersetzen die Vorlage:

<script type="text/ng-template" id="template/datepicker/popup.html"> 
    <ul class="dropdown-menu" ng-if="isOpen" style="display: block" ng-style="{top: position.top+'px', left: position.left+'px'}" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()"> 
     <li ng-transclude></li> 
     <li ng-if="showButtonBar" style="padding:10px 9px 2px"> 
      <span class="btn-group pull-left"> 
      <button type="button" class="btn btn-sm btn-info" ng-click="select('today')" ng-disabled="isDisabled('today')">{{ getText('current') }}</button> 
      </span> 
      <button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText('close') }}</button> 
     </li> 
    </ul> 
</script> 
3

Sie mit CSS hacken. Es hat für mich funktioniert.

.ui-datepicker .btn-group .btn-danger.btn{ 
    display: none; 
} 
0

, wenn Sie die Löschtaste entfernt werden sollen, bedeutet dies, dass das Feld erforderlich ist, und, wie ich mit Zwingen Dingen nicht einverstanden ist (wie ein div Eltern zu schaffen und die Eingabe Klassen) und dann nur das Element für die Sie aktiv die Datumsauswahl nach Bedarf

[uib-datepicker-popup][required] + [uib-datepicker-popup-wrap] button[ng-click*="select(null"] { 
 
    display: none; 
 
}
<input type="text" ng-model="datePicker.date" uib-datepicker-popup="dd MMM yyyy" readonly is-open="datePicker.opened" ng-click="datePicker.opened = true" required />

+0

Ich verstehe nicht, was Sie meinen, wenn das Feld einfach zu entfernen ist, wenn der Löschknopf einfach entfernt wird? Ich habe Datepicker für viele Anwendungen verwendet, und ich habe den Clear-Button bei einigen, alle Buttons bei anderen usw. entfernt, und nie - einmal - hatte es irgendetwas damit zu tun, dass es ein Pflichtfeld ist ... Entschuldigung, wenn ich unhöflich zu sein scheint , aber ich denke nicht, dass dein Beitrag die Frage beantwortet und nicht vollständig verwandt ist. – geostima