Drupal form api #states

Dobrý den,

obracím se na Vás s žádostí o radu. Potřebuji na základě checkboxu zobrazit/skrýt další formulářové pole. Pokud bych měl jednoduchou strukturu, pak vše chodí OK. Můj problém je v tom, že prvek checkbox je zabalený do nějakolika containerů a fieldsetů. Když zaremuji poslední fieldset, pak je funkční.

$form/*['comdatap']*/[$i]['trainset']['loco']['loco_container'.$i][$delta]['strojvedoucib'.$i.$delta] = array (
'#type' => 'checkbox',
);
Na checkbox má reagovat:

$form['comdatap'][$i]['trainset']['loco']['loco_container'.$i][$delta]['strojvedouci'] = array (
'#type' => 'textfield',
'#states' => array(
'visible' => array(
':input[name="strojvedoucib'.$i.$delta.'"]' => array('checked' => TRUE),
),

Ale protože potřebuji zachovat uvedenou strukturu a tedy pokud odremuju /*['comdatap']*/ a upravím podmínku:

':input[name="comdatap[strojvedoucib'.$i.$delta.']"]' => array('checked' => TRUE),

pak funkční není. Prosím, mohl byste mě naznačit, jak by měla vypadat podmínka v uvedeném příkladu?

Děkuji Vám za jakoukoliv pomoc.
M.Klinger

návštěvník

Tak jsem dohledal jak by to jde:

'visible' => array(
'.form-item-loco-container'.$i.'-'.$delta.'-strojvedoucib'.$i.$delta' input' => array('checked' => TRUE),

Nicméně kdybyste mohl uvést příklad, jak to vyřešit přes tu podmínku ':input[name=""

Děkuji

Profile picture for user Jan Polzer

No je otázka, jak vypadá vygenerovaný kód v HTML, jestli opravdu ten input má v name řetězce a čísla, ze kterých to skládáte.

návštěvník

Tak to mě nenapadlo se podívat do HTML, tam je kód:

name="loco_container1[1][strojvedoucib]"

tedy pak podmínka:

':input[name="loco_container'.$i.'['.$delta.'][strojvedoucib]"]' => array('checked' => TRUE),

Děkuji Vám moc za nasměrování a za pomoc

Odpovědět

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru