Utworzyłem encję z formularzem „dodaj nowy”. Sama jednostka ma ograniczoną liczbę rzeczywistych zmiennych. Dodałem większość dodatkowych danych, których potrzebuję, używając niestandardowych pól (tj. Field API).
Na tym etapie muszę dynamicznie ukryć jedno pole na podstawie wartości drugiego. tzn. jeśli pole rozwijane ma wartość Nie, kolejne pole powinno być ukryte, w przeciwnym razie powinno zostać pokazane.
Z tego, co widzę, nieco łatwiej jest dodać tę funkcjonalność do pól utworzonych za pomocą interfejsu API Form (tj. Za pośrednictwem właściwości AJAX), ale czy jest jakiś sposób, aby to osiągnąć za pomocą dołączonych pól? Nie mam problemów z używaniem niestandardowego Javascript, jeśli jest to wymagane do rozwiązania tego problemu.
Odpowiedzi:
jQuery działa dobrze do tego:
źródło
W Drupal 7 możesz użyć $ form
#states
zamiast niestandardowego skryptu jQuery. Przykład:Oto przykład, jeśli chcesz użyć
#states
warunku dla wielu wartości:Zobacz
form_example/form_example_states.inc
z przykładów moduł więcej szczegółów i przykładów.źródło
#states
, nigdy nie znalazłem sposobu na zdefiniowanie bardziej złożonych warunków widoczności, takich jak: ukryj kontrolkę A, gdy wartość kontrolki B znajduje się w tablicy (x, y, z). Czy zdarza ci się znać taką składnię?Powinieneś spróbować pól warunkowych , myślę, że ten moduł jest niezbędny do tego zadania. Można ustawić zależności między polami w przyjaznym dla użytkownika interfejsie administratora. Na przykład możesz ustawić,
A
aby pole było widoczne tylko wtedy, gdyB
pole ma wartość „ 1234 ”, lub możesz ustawić poleC
tekstowe tak, aby było widoczne tylko wtedy, gdyD
pole jest zaznaczone, lub ustawićE
pole na niewidoczne, jeśliF
jest aktywne itp.W formularzu przesyłania te zależności zostaną ustawione po stronie klienta, na ekranie węzła te zależności zostaną ustawione po stronie serwera.
Możesz ustawić te zależności na
admin/structure/types/manage/[YOURCONTENTTYPESMACHINENAME]/dependencies
.(Źródło obrazu: projekt za stronę )
źródło