Validace formuláře odesláného Ajaxem
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jjohny
- Člen | 3
Prosím o radu týkající se odesílání formuláře pomocí Ajaxu. Používám doplňky Ajax s jQuery a Ajaxové formuláře. Vše by fungovalo bez chyby, kdyby u formuláře neprobíhala valice hned dvakrát. Při pokusu o odeslání nevalidního formuláře se objeví JS alert a hned poté se snippet překreslí a objeví se chybová zpráva v html. Nevím jak zabránit znovupřekreslení s chybovou zprávou.
<?php
protected function createComponentAddForm()
{
$form = new AppForm;
$form->getElementPrototype()->class('ajax');
....
$form->addSubmit('add', 'OK');
$form->addSubmit('back', 'Storno')->setValidationScope(NULL);
$form->onSubmit[] = callback($this, 'processAddForm');
return $form;
}
public function processAddForm(AppForm $form)
{
if ($form['add']->isSubmittedBy())
{
$values = $form->getValues();
...
}
if (!$this->isAjax())
$this->redirect('default');
else
{
$this->invalidateControl();
$form->setValues(array(), TRUE);
$this->forward('default');
}
}
?>
- newPOPE
- Člen | 648
Toto som raz riesil:
- moznost, vypol som JS validaciu a nechal som to na server a ked bol invalid
tak som poslal len errory spat (
onInvalidSubmit[]
) - alebo opat nepouzijes netteForms.js resp. len cast (aspon to bolo v starych formoch), ze pouzijes len funkciu nieco ako validateForm(…) a ak prejde tak form posles