nette forms – jak na pravidlo overujici nasobky hodnoty v jednom poli vuci jinemu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- zac24
- Člen | 41
na strance https://doc.nette.org/cs/forms se jen castecne dotykate moznosti validovat hodnotu podle hodnoty v jine bunce, konkretne na prikladu s opakovanym zadanim hesla, ale co kdyz potrebuji neco jen trochu slozitejsiho s jednoduchym vypoctem, napriklad pravidlo kdy hodnota jedne bunky smi obsahovat pouze nasobky hodnoty jine bunky?
Editoval zac24 (21. 8. 2015 10:21)
- vcernik
- Člen | 32
Ahoj, viděl bych to takto:
Formulář:
$form->addText('cislo', 'Číslo:')
->addRule(Form::INTEGER, 'Musí to být číslo');
$form->addText('nasobek', 'Násobek pěti předchozího:')
->addRule(Form::INTEGER, 'Musí to být číslo')
->addRule($this->validateNumber, 'Není to násobek pěti předchozího!', $form['cislo']);
Validační metoda:
public function validateNumber(Nette\Forms\IControl $control, $cislo){
if($control->getValue()==$cislo*5){
return true;
}
return false;
}