Ich habe eine Entität mit einem neuen Formular erstellt. Die Entität selbst hat eine begrenzte Anzahl von tatsächlichen Variablen. Ich habe die meisten zusätzlichen Daten hinzugefügt, die ich mit benutzerdefinierten Feldern (dh der Feld-API) benötige.
Was ich in dieser Phase tun muss, ist in der Lage zu sein, ein Feld basierend auf dem Wert eines anderen dynamisch auszublenden. Wenn für ein Dropdown-Feld der Wert "Nein" festgelegt ist, sollte ein anderes Feld ausgeblendet werden, andernfalls sollte es angezeigt werden.
Soweit ich sehen kann, ist es einigermaßen einfach, diese Funktionalität zu Feldern hinzuzufügen, die mit der Formular-API (dh über die AJAX-Eigenschaft) erstellt wurden. Gibt es jedoch eine Möglichkeit, dies mit angehängten Feldern zu erreichen? Ich habe keine Probleme mit benutzerdefiniertem Javascript, wenn dies erforderlich ist, um dies zu lösen.
Antworten:
jQuery funktioniert gut dafür:
quelle
In Drupal 7 können Sie $ form
#states
anstelle eines benutzerdefinierten jQuery-Skripts verwenden. Beispiel:Hier ist ein Beispiel, wenn Sie die
#states
Bedingung für mehrere Werte verwenden möchten :Siehe das
form_example/form_example_states.inc
von Beispielen Modul für weitere Informationen und Beispiele.quelle
#states
, ich habe noch nie eine Möglichkeit gefunden, komplexere Sichtbarkeitsbedingungen zu definieren, z. B .: Steuerelement A ausblenden, wenn der Wert von Steuerelement B im Array (x, y, z) liegt. Kennst du zufällig eine Syntax dafür?Sie sollten es mit bedingten Feldern versuchen . Ich denke, dieses Modul ist ein Muss für diese Aufgabe. Sie können Abhängigkeiten zwischen Feldern in einer benutzerfreundlichen Administrationsoberfläche festlegen. Zum Beispiel können Sie festlegen ,
A
Feld sein nur sichtbar , wennB
Feld Wert „ 1234 “, oder Sie können festlegenC
Textfeld sein , sichtbar nur , wennD
Feld aktiviert ist, oder SetE
Feld unsichtbar , wennF
heißt fokussierte usw.Auf dem Upload-Formular werden diese Abhängigkeiten clientseitig festgelegt, auf der Knotenanzeige werden diese Abhängigkeiten serverseitig festgelegt.
Sie können diese Abhängigkeiten auf einstellen
admin/structure/types/manage/[YOURCONTENTTYPESMACHINENAME]/dependencies
.(Quelle des Bildes: die Projektseite )
quelle