Nastavení description v závislosti na hodnotě prvku formuláře
- Allconius
- Člen | 317
Ahoj,
mám tento formulářový prvek addInteger:
<?php
$form->addInteger('castka'.$i.'', 'Částka:')
->setOption('id', 'poplatnik'.$i.'-castka')
->setOption('description',Html::el()->setHtml('<br />Částka u poplatníka '.$p.' nesmí být záporná nebo rovna 0. V případě, že se jedná o osvobození třetího a dalšího dítěte od poplatku je potřeba vyplnit "<a href="https://" target="_blank">Formulář pro nahlášení dětí (třetího a dalšího) osvobozených od poplatku za odpad</a>"'))
->setDefaultValue(670)
->setHtmlAttribute('onchange', 'CastkaCelkem()')
->addConditionOn($form['poplatnik'.$p.''], Form::EQUAL, true)
->addRule($form::RANGE, 'Částka u poplatníka '.$p.' nesmí být záporná nebo rovna 0. V případě, že se jedná o osvobození třetího a dalšího dítěte od poplatku je potřeba vyplnit "Formulář pro nahlášení dětí (třetího a dalšího) osvobozených od poplatku za odpad".', [1, 1000000])
->setRequired('Částka u poplatníka '.$p.' musí být vyplněna.');
?>
dá se nějak nastavit aby se to description s tím odkazem zobrazilo pouze pokud je hodnota prvku 0 nebo záporná ? Zkoušel jsem nějak šachovat s tím addrule a condition, ale psalo mi to, že se tam to setOption nedá použít … A ještě dotaz , u té hlášky addRule se nedá asi použít html, že by tam byl aktivní link ?
- David Matějka
- Moderator | 6445
- podmíněné description budeš muset vyřešit ručně v javascriptu
- html by u addRule myslím mělo jít, použil jsi tam Html::el()?
- mimochodem, namísto slepování
'castka' . $i
použij form containery
- Allconius
- Člen | 317
Ahoj, upravil jsem to takto:
<?php
->addConditionOn($form['poplatnik'.$p.''], Form::EQUAL, true)
->addRule($form::RANGE, Html::el()->setHtml('Částka u poplatníka '.$p.' nesmí být záporná nebo rovna 0. V případě, že se jedná o osvobození třetího a dalšího dítěte od poplatku je potřeba vyplnit "<a href="">Formulář pro nahlášení dětí (třetího a dalšího) osvobozených od poplatku za odpad</a>".'), [1, 1000000])
->setRequired('Částka u poplatníka '.$p.' musí být vyplněna.');
?>
ale problém je v tom, že teď se všechny hlášky ve formuláři vypisují pod daný prvek místo do vyskakovacího okna, což by bylo hezké ale zobrazují se bez ohledu na to zda je podmínka splněna nebo ne, nějak to Html::el()->setHtml( rozbilo celý formulář nebo tam mám nějakou chybu …