RadioList Form::RANGE validateRange
- Ascaria
- Člen | 187
Zdravím,
Nette Framework (version 2.0-dev released on 2011–10–11, https://nette.org)
Když se pokouším u RadioListu přidat ->addCondition(Form::RANGE, Array(1, null)) (tzn. všechny radiobuttony kromě prvního), končí mi to na chybě, že není definovaná metoda RadioList::validateRange. Je to takto schválně? Jako hotfix jsem tuto metodu přesunul z textbase do basecontrol a její první argument změnil z TextBase na IControl. Zdá se že to funguje, ale nezkoušel jsem to s ostatníma controlama, ke kterým to díky této změně přibylo.
Ascaria
- kravčo
- Člen | 721
Ak ti vadí iba jedna z hodnôt, potom je najjednoduchšie použiť
negované Form::EQUAL
:
$form->addRadio('radio1', 'Radio1:')
->addCondition(~Form::EQUAL, 1) // vlnovka pravidlo neguje
->...
- Ascaria
- Člen | 187
Potřebuji výčet hodnot bohužel. Když mám radiolist o 5ti hodnotách, tak pro 2* hotel může být povinný výběr 4 hodnot, a když mám 5* hotel tak to pak může být omezené jen na jednu či dvě „luxusnější“ volby. Přijde mi divné, že radiolist má výčet hodnot, ale nelze jejich validaci vymezovat výčtem.
- David Grudl
- Nette Core | 8228
Výčet může být použit i jako parametr Form::EQUAL. Místo hodnoty uveď pole hodnot.
- Ascaria
- Člen | 187
Form::EQUAL ale nemůže mít rozsah např. od 5 do nekonečna. Dělat pole s výčtem hodnot může přidat do kódu cyklus navíc (např. pokud okamžitě znám jen jedno číslo a to minimální hodnotu), který bude ten výčet speciálně stavět, což nemusí být vždy praktické. Proto si myslím, že range by mohlo mít kromě checkboxu všechno (nakonec i checkbox může mít pravidlo range Array(1, null)).
Editoval Ascaria (21. 3. 2012 14:56)