Vlastní validační pravidlo
- Sajwy
- Člen | 2
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
ahoj pouzijj ty statícky picooviny. pro dalsi vecci koukni na hrachovu prednasku na rijnove posobote..
- David Matějka
- Moderator | 6445
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