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
+
0
-

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
+
+5
-

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;
}
zac24
Člen | 41
+
0
-

diky to je presne ono