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
+
0
-

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
+
0
-

Toto som raz riesil:

  1. moznost, vypol som JS validaciu a nechal som to na server a ked bol invalid tak som poslal len errory spat (onInvalidSubmit[])
  2. 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
jjohny
Člen | 3
+
0
-

Díky za tip. S Nette teprve začínám. Zatím nevím, jak by se navrhované možnosti aplikovaly :(