Validace formulářů – alespoň jeden prvek vyplněn

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

Mám takto nastavenou validaci

$form->addText("rc", "Rodné číslo");
$form->addText("passport", "Číslo pasu");
$form["passport"]->addConditionOn($form['rc'], Form::FILLED, FALSE)
        ->addRule(Form::FILLED, 'Zadejte rodné číslo nebo číslo pasu');
$form["rc"]->addConditionOn($form['passport'], Form::FILLED, FALSE)
        ->addRule(Form::FILLED, 'Zadejte rodné číslo nebo číslo pasu');

Avšak podmínka se splní jen v případě, že jsou obě pole vyplněna, jinak ne. Co mám špatně?

Já to, co jsem napsal, chápu tak, že v případě, že pole rc není vyplněno, pak pole passport musí být vyplněno a naopak, pokud pole passport není vyplněno, pak pole rc musí být vyplněno.

Díky

frosty22
Člen | 373
+
0
-

Tam by měla být jen ta jedna podmínka třeba na to „passport“.

simPod
Člen | 383
+
0
-

Takto?

$form->addText("rc", "Rodné číslo");
$form->addText("passport", "Číslo pasu");
$form["passport"]->addConditionOn($form['rc'], Form::FILLED, FALSE)
        ->addRule(Form::FILLED, 'Zadejte rodné číslo nebo číslo pasu');
//$form["rc"]->addConditionOn($form['passport'], Form::FILLED, FALSE)
//        ->addRule(Form::FILLED, 'Zadejte rodné číslo nebo číslo pasu');

To se pak aplikuje jen na Rodne cislo, pokud ho vyplnim, tak ok, pokud ale vyplnim cislo pasu, tak opet vyskoci hlaska o validaci.

Mozna uz je moc pozde a nemysli mi to…

duke
Člen | 650
+
0
-

Zkus:

$form["passport"]->addConditionOn($form['rc'], ~Form::FILLED)
        ->addRule(Form::FILLED, 'Zadejte rodné číslo nebo číslo pasu');
simPod
Člen | 383
+
0
-

Funguje, diky moc