Vlastní validační pravidlo

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

Ahoj všichni.

S Nette(2.2) jsem opravdu v začátcích, ale prokousal jsem se k situaci, kdy bych potřeboval napsat vlastní validační pravidlo pro input a tak jsem podle dokumentace vytvořil jednoduchou funkci na ověření sudosti čísla, která vypadá následovně:

public function jeSude($control)
{
	return $control->value % 2 === 0;
}

Formulář pak takto:

protected function createComponentSudeForm()
{
        $form = new Form;

        $form->addText('cislo', 'Zadej číslo: ')
                ->setRequired('Pole je třeba vyplnit!')
                ->addRule(Form::INTEGER,'Musí se zadat číslo!')
                ->addRule(callback($this->validator, 'jeSude'), 'Toto číslo není sudé!');

        $form->addSubmit('overit', 'Ověř sudost');

        $form->onSuccess[] = $this->sudeFormSucceeded;

        return $form;
}

Validace na serveru funguje, ale validace na klientovi bohužel ne. Do stránky vkládám na základě dokumentace tento skript:

<script>
Nette.validators.MujValidator_jeSude = function(elem, args, value) {
		return value % 2 === 0;
	};
</script>

Je dost možné, že něco dělám špatně, proto bych byl vděčný za jakoukoli radu, jak rozjet validaci na straně klienta. Předem děkuji :-)

David Matějka
Moderator | 6445
+
0
-

ahoj pouzijj ty statícky picooviny. pro dalsi vecci koukni na hrachovu prednasku na rijnove posobote..

David Matějka
Moderator | 6445
+
+2
-

az trochu vystrizlivim mozna reknu jak ty staticky picoviny pouzit. ale ted mysli na dvojtecky a treba na to prijdes..

jo a stastny a vesely :P

Sajwy
Člen | 2
+
0
-

No nějaký věci už jsem zkoušel, co jsem našel ve foru v příspěvkách, jenže ty vlákna byly už dcl dost starý a tak nic nefungovalo. Rozhodně díky za echo na tu přednášku, omrknu to, ale kdyby jsi osvětlil jak to použít, tak budu jedině rád. Tobě také šťastné a veselé :-)