Validace tří inputů – dva povinné

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

Zdravím, mám formulář se třemi inputy a požaduji, aby alespoň dva z nich byly vyplněné.

Už hodinu nad tím lámu hlavu a zkouším různé varianty, prolézám fórum, ale na nic nového jsem nepřišel. Zkoušel jsem např. kód níže, ale zde je chyba, jelikož se formulář správně zvaliduje už při vyplnění pouhého jednoho pole.

<?php
$formPower['sum_price']
  ->addConditionOn($formPower['sum_quantity'], ~Form::FILLED)
  ->addConditionOn($formPower['price_per_unit'], ~Form::FILLED)
    ->addRule(Form::FILLED, 'Musí být vyplněny alespoň dvě hodnoty');
$formPower['sum_quantity']
  ->addConditionOn($formPower['price_per_unit'], ~Form::FILLED)
  ->addConditionOn($formPower['sum_price'], ~Form::FILLED)
    ->addRule(Form::FILLED, 'Musí být vyplněny alespoň dvě hodnoty');
$formPower['price_per_unit']
  ->addConditionOn($formPower['sum_price'], ~Form::FILLED)
  ->addConditionOn($formPower['sum_quantity'], ~Form::FILLED)
    ->addRule(Form::FILLED, 'Musí být vyplněny alespoň dvě hodnoty');
?>

Neví tedy někdo jak na to? Předem díky za odpovědi

Editoval Proki (24. 10. 2009 21:06)

nAS
Člen | 277
+
0
-

Co to zkusit takhle? (Nezkoušel jsem)

<?php
$formPower['sum_price']
  ->addConditionOn($formPower['sum_quantity'], ~Form::FILLED)
    ->addRule(Form::FILLED, 'Musí být vyplněny alespoň dvě hodnoty');
$formPower['sum_price']
  ->addConditionOn($formPower['price_per_unit'], ~Form::FILLED)
    ->addRule(Form::FILLED, 'Musí být vyplněny alespoň dvě hodnoty');
$formPower['sum_quantity']
  ->addConditionOn($formPower['sum_price'], ~Form::FILLED)
    ->addRule(Form::FILLED, 'Musí být vyplněny alespoň dvě hodnoty');
$formPower['sum_quantity']
  ->addConditionOn($formPower['price_per_unit'], ~Form::FILLED)
    ->addRule(Form::FILLED, 'Musí být vyplněny alespoň dvě hodnoty');
$formPower['sum_per_unit']
  ->addConditionOn($formPower['sum_price'], ~Form::FILLED)
    ->addRule(Form::FILLED, 'Musí být vyplněny alespoň dvě hodnoty');
$formPower['sum_per_unit']
  ->addConditionOn($formPower['sum_quantity'], ~Form::FILLED)
    ->addRule(Form::FILLED, 'Musí být vyplněny alespoň dvě hodnoty');
?>