Validace formuláře – žádný „alert“?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
diablos
Člen | 36
+
0
-

Ahoj,
mám problém s validací formuláře. V továrně tvořím formulář pomocí AppFormu. Všechno je v pořádku, až na jednu věc. Když odešlu formulář, tak se sice validace provede, ale místo toho, aby mi vyskočila hláška (myslím tím funkci alert()), tak se mi jen vypíše nad formulář. Možná to bude tím, že v prezentru rozděluji, jestli se má zobrazit tabulka s údaji nebo právě formulář. Tady je kód presenteru.

<?php
	if(!isset($mode)) $mode = 'add';

        $this->template->mode = $mode;

        $form = $this->getComponent('addClientForm');

        if(($mode == 'edit') && ($clientId > 0)) {
            $clientModel = new ClientsModel;
            $record = $clientModel->find($clientId)->fetch();
            if(!$record) {
                throw new BadRequestException('Klient nenalezen.');
            }
        }

        if($mode == 'add' || $mode == 'edit') {
            if($session->__isset('clientId') && $record) {
                $form->setDefaults($record);
            }
            $this->template->form = $form;
        }
        else {
            $this->template->form = $this->getComponent('clientListGrid');
        }
?>

Vůbec mě nenapadá čím by to mohlo být. Jestli má někdo nějaký nápad, budu jen vděčen!

Ondřej Mirtes
Člen | 1536
+
0
-

Jakým způsobem ten formulář vykresluješ?

diablos
Člen | 36
+
0
-

Ručně…

<?php
          $carForm->render('begin');
          $carForm->render('errors');
?>
  <div id='addCarTable'>
    <table>
      <tr>
        <th>{!$carForm['kindId']->label}</th>
        <td>{!$carForm['kindId']->control}</td>
        <th>{!$carForm['vin']->label}</th>
        <td>{!$carForm['vin']->control}</td>
      <tr>
.
.
.
Ondřej Mirtes
Člen | 1536
+
0
-

A na toto jsi nezapomněl?

$carForm->render('end');

BTW: Vypadá to, že tu tvoji strukturu by mohl zvládnout i ConventionalRenderer, na první pohled nevidím rozdíl.

diablos
Člen | 36
+
0
-

Máš pravdu, chybělo end. Děkuji moc, velmi si mi pomohl!