Frage zu #states
am 23.06.2013 - 11:46 Uhr in
Hallo,
ich versuche in einem vorhandenen Formular #states anzuwenden.... klappt aber leider überhaupt nicht.
Der Formularname stimmt definiv, da ihn auch für andere Zwecke verwende.
Nun versuche ich das Feld mit der id "edit-field-ggv-" anzusprechen und über ein Zweites zu triggern.
Trigger ist in dem Fall ein Inputfeld, was innerhalb des wrappers mit der id "edit-field-umbau" liegt.
Wenn dieses Feld den Wert "Kein Umbau" hat, soll "edit-field-ggv-" nicht angezeigt werden.
Mein Versuch dazu war:
<?php
function form_angebot(&$form, &$form_state, $form_id) {
$form['edit_field_ggv_'] = array(
'#states' => array(
'invisible' => array(
':input[name="edit_field_umbau"]' => array('value' => 'kein_umbau'),
),
),
);
}
?>
Ich habe den Verdacht, dass ich das Inputfeld nicht korrekt anspreche. Es handelt sich bei "edit-field-umbau" um ein Drop-Down-Feld mit mehreren Optionen.
Was habe ich übersehen?
- Anmelden oder Registrieren um Kommentare zu schreiben
Ein existierendes Formular
am 23.06.2013 - 13:07 Uhr
Ein existierendes Formular ändert man nicht über hook_form sondern über hook_form_alter oder hook_form_FORMID_alter. So wird das nichts werden.
Beste Grüße
Werner
Stimmt, da ist mir etwas bei
am 23.06.2013 - 13:20 Uhr
Stimmt, da ist mir etwas bei einer Änderung abhanden gekommen. :/
Es funktioniert so aber leider trotzdem nicht.
<?php
function form_angebot_alter(&$form, &$form_state, $form_id) {
$form['edit_field_ggv_'] = array(
'#states' => array(
'invisible' => array(
':input[name="edit_field_umbau"]' => array('value' => 'kein_umbau'),
),
),
);
}
?>
Verstanden habe ich es so....
am 23.06.2013 - 14:03 Uhr
Verstanden habe ich es so.... vielleicht ist dabei ja ein Denkfehler:
$form[' < ID des auszublendenden Inputfeldes, des divs, was auch immer > '] = array(
'#states' => array(
'invisible' => array(
':input[name=" < id des Inputfeldes, welches unter Anderem die Option "Kein Umbau" beinhaltet" > "]' => array('value' => ' < Eine Option des Inputfeldes, welches die Aktion auslösen soll >'),
),
),
);
Du hast Dir die Dokumentation
am 23.06.2013 - 15:47 Uhr
Du hast Dir die Dokumentation nicht richtig angesehen:
<?php
$form['email_canceled']['settings'] = array(
'#type' => 'container',
'#states' => array(
// Hide the settings when the cancel notify checkbox is disabled.
'invisible' => array(
':input[name="email_canceled_toggle"]' => array('checked' => FALSE),
),
),
);
?>
Bitte den Subarray beachten.
Beste Grüße
Werner