validacia formularov – zmena štýlu hlásenia
- Takeshi
- Člen | 596
Mysteria napsal(a):
Dělá, ale na serveru, tnz. když odešleš formulář, tak se ti zobrazí chyba (pokud je teda někde vypisuješ).
Žiaľ mne to nekontroluje … najprv som tam mal link na netteForm.js … všetko išlo ok, teda nemal som nič vyplnené a stlačil som odoslať … napísalo mi „vlož email“ .. keď som odstránil link *.js … hneď ma hodilo na „formular bol odoslaný“ … bez validacie
- Takeshi
- Člen | 596
cely presenter
<?php
namespace App\Presenters;
use Nette,
App\Model;
use Nette\Application\UI\Form;
/**
* KontaktnyFormular presenter.
*/
class KontaktnyFormularPresenter extends BasePresenter
{
public function renderDefault()
{
}
public function createComponentContactForm()
{
$form = new Form();
$form->addText('email','E-mail',30)
->addRule(Form::EMAIL,"Zadaj e-mail v správnom formáte !")
->setRequired("vlož svoj e-mail !");
$form->addText('subject','Predmet',30)
->setRequired("O čo ide ?");
$form->addTextArea('content','Správa',30,6)
->setRequired("Vlož správu !");
$form->addSubmit('submit','Odošli');
$form->elementPrototype->novalidate("novalidate");
$form->onValidate[] = callback($this,'successFormSubmitted');
return $form;
}
public function successFormSubmitted(Form $form)
{
$values = $form->getValues();
$this->flashMessage('Správa bola úspešne odoslaná.');
$this->redirect('Homepage:');
}
}
… nevsimol som si, že tam je aj
$form->elementPrototype->novalidate("novalidate");
… no aj tak … ked som to odstránil …
ukazuje mi to tu vseobecnu hlasku vypln toto pole … pri vsetkom … a ignoruje
addRule
- Takeshi
- Člen | 596
Mysteria napsal(a):
@Takeshi: A nemáš náhodou odesílání přes metodu ->onSubmit[]? Tam se to nekontroluje, je potřeba navěšet to na metodu ->onSuccess[] nebo při použití ->onSubmit[] se ptát $form->isSuccess() nebo tak nějak.
Mal si pravdu .. nemal som to síce na ->onSubmit() … ale na ->onValidate[] … u6 je to OK :-) Ďakujem