Pomínka v selectboxu navazující na jiný selectbox

vosy
Člen | 525
+
0
-

ahoj ve formuláři mám nastaveno

		$form->addSelect(self::FORM_CONTROL_TIME_HOUR_TO, '', $this->optionsArray_hours(true))
            ->setRequired('Zadejte prosím hodinu konce.');

        $form->addSelect(self::FORM_CONTROL_TIME_MINUTE_TO, '', $this->optionsArray_Minutes())
            ->addConditionOn($form[self::FORM_CONTROL_TIME_HOUR_TO], $form::MAX, 23)
             ->setRequired('Zadejte prosím minuty konce.');

Chtěl bych aby select MINUTE_TO byl povinný pouze pokud u HOUR_TO bylo zadáno menší číslo než 24.

Jo ještě se mi u minuty zobrazuje hláška „Please select a valid option.“ a né „Zadejte prosím minuty konce.“

Editoval vosy (14. 11. 2022 23:57)

Ondris
Člen | 37
+
0
-

Tohly by mělo fungovat, jediná otázka je, co ti vrací ty funkce $this->optionsArray_hours(true) a $this->optionsArray_Minutes(), tam překontroluj formát co přesně v options je.

Takhle to funguje správně, při výběru 23 a míň musím vybrat i minuty, jinak jen hodiny.:

protected function createComponentTestForm(): Nette\Application\UI\Form
    {
        $form = new Nette\Application\UI\Form();

        $form->addSelect("hours", 'hodiny', [null => "", 1 => 1, 2 => 2, 3 => 3, 23 => 23, 24 => 24, 25 => 25, 50 => 50])
            ->setRequired('Zadejte prosím hodinu konce.');

        $form->addSelect("minutes", 'minuty', [null => "", 10 => 10, 20=> 20, 30 => 30, 40 => 40, 50 => 50])
            ->addConditionOn($form["hours"], $form::MAX, 23)
            ->setRequired('Zadejte prosím minuty konce.');

        $form->addSubmit('send', 'Test');
        $form->onSuccess[] = [$this, 'formSucceeded'];

        return $form;
    }

Editoval Ondris (15. 11. 2022 6:14)

vosy
Člen | 525
+
0
-

Ty „optionsArray“ vrazi neco podobného jako jsi napsal.

Situace je taková že, když tam nemám tuto podmínku

->addConditionOn($form[self::FORM_CONTROL_TIME_HOUR_TO], $form::MAX, 23)

tak se mi vypisuje chyba „Zadejte prosím minuty konce.“

ve chvíli kdy tam přidám tu podmínku tak se vypisuje chyba „Please select a valid option.“

Jsem z toho jelen.

vosy
Člen | 525
+
0
-

aha tak asi podminka

->addConditionOn($form[self::FORM_CONTROL_TIME_HOUR_TO], $form::MAX, 23)

říká, že nesmíš vybrat větší číslo než 23