Vlastný js pre odoslanie formulára
- Creator26
- Člen | 3
Skúšam použitie Nette Forms. Potreboval by som použiť vlastnú validáciu.
public function registerForm()
{
$form = new Form;
$roles = [
2 => 'Klub',
3 => 'Tréner',
4 => 'Hráč',
];
$form->addEmail('email', 'Email')
->setRequired('Zadejte prosím email')
->setAttribute('class', 'form-control')
->setAttribute('placeholder', 'Email')
->addRule($form::EMAIL, 'Nesprávny formát emailovej adresy');
$form->addPassword('password', 'Heslo:')
->setRequired('Zvoľte si heslo')
->setAttribute('class', 'form-control')
->setAttribute('placeholder', 'Heslo')
->addRule(Form::MIN_LENGTH, 'Heslo musí mať alespoň %d znakov', 8);
$form->addPassword('passwordVerify', 'Heslo pre kontrolu:')
->setRequired('Zadejte prosím heslo ešte raz')
->setAttribute('class', 'form-control')
->setAttribute('placeholder', 'Heslo znovu')
->addRule(Form::EQUAL, 'Hesla se nezhodujú', $form['password']);
$form->addSelect('role', 'Vyberte typ používateľa', $roles)
->setRequired('Vyberte typ registrácie')
->setAttribute('class', 'form-control')
->setAttribute('placeholder', 'Heslo')
->setPrompt('Zvolte si typ registrácie');
$form->addSubmit('send', 'Vytvoriť konto')
->setAttribute('class', 'btn btn-success btn-block');
return $form;
}
Formulár vykreslujem nasledovne. Problém je, že mi nevypisuje daný zápis chyby. Chybové hlášky mi vyskakujú iba vo vyskakovacom okne, co sa mi moc nepaci. Chyby by som si chcel spracovať svojim sposobom. Navyse tam potrebuje ajaxovo nacpat, ci uz sa dana emailova adresa pouziva, alebo nie.
<!-- Register Form -->
{$frmRegister->render('begin')}
{$frmRegister->render('errors')}
<h5>Register Now!</h5>
{foreach $frmRegister->errors as $error}
{$error}
{/foreach}
<div class="form-group">
{$frmRegister['email']->control}
</div>
<div class="form-group">
{$frmRegister['password']->control}
</div>
<div class="form-group">
{$frmRegister['passwordVerify']->control}
</div>
<div class="mws-form-item">
{$frmRegister['role']->control}
</div>
<div class="form-group form-group--submit">
{$frmRegister['send']->control}
</div>
{$frmRegister->render('end')}
<!-- Register Form / End -->
Poprosil by som vas o radu ako to docielit.
Editoval Creator26 (25. 8. 2018 0:18)
- GEpic
- Člen | 566
Ověřování existence e-mailu onchange / ajaxem
je absolutní
a nelogickej nesmysl – fakt, nedělej to, budeš se s tím zbytečně je**t.
To stačí bohatě při odeslání formuláře. Protože mezi námi, jak často
se stane, že již účet s e-mailem existuje? To se stane jedině
v případě, že je uživatel debil a zapomněl, že se do té služby již
registroval.
Jinak, pokud chceš řešit vypisování chybových hlášek svým způsobem, můžeš se inspirovat zde (nebo rovnou knihovnu použít)
Editoval GEpic (25. 8. 2018 2:33)