validace formulare addRule – alert onValidate – text v sablone
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Muhahe
- Člen | 79
Narazil jsem na rozdílné chybové hlášky u validace formuláře. Pokud použivám addRule viz př 1 tak vyskakuje alert, a pokud používám onValidate viz př 2 chybová hláška je vypsána nad formulářem v šabloně.
Je možné, aby i v případě addRule byla chybová hláška zobrazena textově nad formulářem?
př 1 addRule
<?php
$name = $form->addText('name', 'Name', 30, 15)
->addRule(Form::FILLED, "Name must be filled.");
?>
př 2 onValidate
<?php
$form->onValidate[] = callback($this, 'validateLogin');
public function validateLogin($form){
$values = $form->getValues();
if($values['login']==""){
$values['login'] = $values['name'].".".$values['surname'];
if($this->uzivateleRepository->loginExists($values['login'])){
$form['login']->setValue($values['login']);
$form->addError('login exists');
}
}else{
if($this->uzivateleRepository->loginExists($values['login'])){
$form->addError('created login exists');
}
}
}
?>
- s4muel
- Člen | 92
$name = $form->addText('name', 'Name', 30, 15)
->addRule(Form::FILLED, "Name must be filled."); //alebo ekvivalent ->setRequired('message')
toto nastavuje pri renderovani input elementu atribut „required“ a kontroluje to browser, preto v priklade 1 vyskakuju alerty.
skus pozriet https://forum.nette.org/…yb-formulare
a vypnut validaciu ako radi enumag (formnovalidate na <input> alebo
novalidate na <form>)
napr:
$form->elementPrototype->addAttributes(array('novalidate' => 'novalidate'));