pevna linka NEBO mobil – podmínky
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Ovce
- Člen | 2
Dobrý večer,
snažím se vytvořit můj první formulář v nette a nevím jak ho donutit k tomu, aby vyžadoval zadané buď číslo na pevnou linku nebo na mobil.
Zatím mám tohle, ale na té první podmínce bohužel nette zkolabuje (Component with name ‚mobil‘ does not exist).
<?php
$form->addText('telefon', 'Pevna linka:', 35)
->addConditionOn($form['mobil'], Form::EQUAL, '')
->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');
$form->addText('mobil', 'Mobil:', 35)
->addConditionOn($form['telefon'], Form::EQUAL, '')
->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');
?>
Jak by se tato situace měla správně ošetřit?
- redhead
- Člen | 1313
a co takhle nejdriv vytvorit inputy, ulozit si je do promennych a az pote u nich nastavit podminky??
$tel = $form->addText('telefon', 'Pevna linka:', 35);
$mobil = $form->addText('mobil', 'Mobil:', 35);
$tel->addConditionOn($form['mobil'], Form::EQUAL, '')
->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');
$mobil->addConditionOn($form['telefon'], Form::EQUAL, '')
->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');
- Ondřej Mirtes
- Člen | 1536
redhead napsal(a):
a co takhle nejdriv vytvorit inputy, ulozit si je do promennych a az pote u nich nastavit podminky??
$tel = $form->addText('telefon', 'Pevna linka:', 35); $mobil = $form->addText('mobil', 'Mobil:', 35); $tel->addConditionOn($form['mobil'], Form::EQUAL, '') ->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.'); $mobil->addConditionOn($form['telefon'], Form::EQUAL, '') ->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');
Pro detekci NEvyplnění pole se používá negace:
$tel->addConditionOn($form['mobil'], ~Form::FILLED)
->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');
$mobil->addConditionOn($form['telefon'], ~Form::FILLED)
->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');