Pravidla pro povinný výběr pouze z jednoho ze dvou selectboxu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Petr Daňa
Člen | 109
+
0
-

Ahoj, jak napsat správně pravidla pro dva selectboxy, aby šlo vybrat položku jen z jednoho nebo druhého, ale přitom byl takový výběr povinný? Zatím to mám takhle:

<?php
        $form->addSelect('owner', 'Vlastník:', array())
            ->setPrompt('');

        $form->addSelect('agent', 'Oprávněná osoba:', array())
            ->setPrompt('')
            ->addConditionOn($form['owner'], UI\Form::FILLED)
                ->addRule(~UI\Form::FILLED, 'Pokud vyberete vlastníka, nemůžete vybrat i oprávněnou osobu.');

        $form['owner']
            ->addConditionOn($form['agent'], ~UI\Form::FILLED)
                ->addRule(UI\Form::FILLED, 'Musíte vybrat vlastníka nebo oprávněnou osobu.');

?>

Nevím, jak to nastavit, aby tam fungovala správně ta povinnost, tak jak to mám mi to pořád hlásí, že musím vybrat, ale až validace na straně serveru, JS validace nic nehlásí. (Pokud nemám vybrané z obobu selecboxů, pak už JS správně hlásí co má).

Petr Daňa
Člen | 109
+
0
-

Tak problém vyřešen. Nějak jsem za ty roky, co jsem v Nette nedělal, zapomněl, že pro validaci formuláře je nutné mít načtené seznamy položek u selectboxů. Já je načítal až v renderu, abych ušetřil dotazy do DB, po přesunutí do action už validace funguje jak má.

Editoval Petr Daňa (29. 7. 2013 23:12)