Aspoň 1 checkbox vybraný – podmínka

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Tomáš Votruba
Moderator | 1114
+
0
-

EDIT: Vyřešeno – viz níže

Potřebuj poradit, jak u 3 checkboxů stanovit podmínku, aby byl vybrán alespoň 1 z nich. Za ověření na straně klienta pomocí js, tedy při pokusu o odeslání.

<?php
$draw_form->addCheckbox('sk_pripravka',' Přípravka');
$draw_form->addCheckbox('sk_zaci',' Žáci');
$draw_form->addCheckbox('sk_dorost_dospeli',' Dorost a dospělí');
?>

Editoval Schmutzka (22. 12. 2010 19:30)

redhead
Člen | 1313
+
0
-

Analogie s textovými políčky. Stačí hledat.

https://forum.nette.org/…orla-policek?…

Šaman
Člen | 2666
+
0
-

Jde to i takhle
Odkoušeno v PHP 5.2. Při více checkboxech je to jednodušší řešení.

Tomáš Votruba
Moderator | 1114
+
0
-

redhead: pěkné, ještě pro 3 případy → edit: viz níže

Nakonec stačí jen jedna dvojpodmínka, která pokryje vyplnění aspoň jednoho ze všech 3.

<?php
  $filter_form->addCheckbox('sk_pripravka',' Přípravka')
    ->setDefaultValue("CHECKED");
  $filter_form->addCheckbox('sk_zaci',' Žáci')
    ->setDefaultValue("CHECKED");
  $filter_form->addCheckbox('sk_dorost_dospeli',' Dorost a dospělí')
    ->setDefaultValue("CHECKED");

  $filter_form["sk_pripravka"]
    ->addConditionOn($filter_form['sk_zaci'],~Form::FILLED)
    ->addConditionOn($filter_form['sk_dorost_dospeli'],~Form::FILLED)
      ->addRule(Form::FILLED, 'Alespoň jedna skupina musí být vybrána.');
?>

Editoval Schmutzka (22. 12. 2010 19:29)