Mam niestandardowy moduł i próbuję ukryć grupę polową CCK za pomocą „#states”, gdy określony element zostanie wybrany z rozwijanej listy wyboru.
Próbowałem użyć stanów z funkcji hook_form_alter (), tak jak poniżej:
$form['group_mygroup']['#states']['invisible'] = array(
':input[name="field_trigger[' . LANGUAGE_NONE. ']"]' => array( 'value' => 'hide' ),
);
To wydaje się nic nie robić.
Patrzyłem na zmianę wagi mojego modułu w różnych witrynach, takich jak http://proofgroup.com/blog/2008/dec/modifying_cck_fieldgroups_hook_form_alter .
ale wciąż bezskutecznie. Mogę ukryć wszystkie elementy formularza w grupie pól, używając stanów, ale nie samej grupy pól. Czy ktokolwiek ma jakiś pomysł?
7
javascript
thepearson
źródło
źródło
Odpowiedzi:
Używam tego haka, aby ukryć moją grupę polową. Jest widoczny tylko wtedy, gdy pole wyboru
field_myfield
jest zaznaczone.Do zbadania
$element
zmiennej w tym haku użyłemzamiast
dpm()
.Mam nadzieję, że to pomogło :)
źródło
Grupy pól nie są zdefiniowane w katalogu głównym
$form
. Wydaje się, że nie powinieneś używać$form['group_mygroup']
, ale$form['#fieldgroups']['group_mygroup']
.źródło
Możesz spojrzeć na moduł przykładowy, aby zobaczyć, jak ukrywają zestawy pól . Na tej podstawie uważam, że twój kod powinien być:
źródło