Nefunkční validace formuláře ->setRequired() po naplnění Ajaxem

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

Zdar, zkoušel jsem udělat plnění formuláře ajaxem viz: https://blog.nette.org/…-and-pure-js

Narazil jsem na problém že při odeslání formuláře není funkční validace ->setRequired(), hlásí že není žádná hodnota, přitom když validaci vyhodím data tam jsou.

S pozdravem

Editoval breeta (12. 8. 2015 13:24)

David Matějka
Moderator | 6445
+
0
-

pro zavisle select boxy pouzij radeji tohle

enumag
Člen | 2118
+
0
-

David Matějka napsal(a):

pro zavisle select boxy pouzij radeji tohle

Já ti nevím ale tohle řešení se mi dvakrát nezamlouvá. Není obecné a je potřeba vytvářet šablonu.

David Matějka
Moderator | 6445
+
0
-

je potřeba vytvářet šablonu.

tak kdyz chces invalidovat pouze cast formulare, tak ji musis vytvorit vzdy

Není obecné

mozna, ale je nejsnazsi na pouziti a (asi) plne funkcni, jelikoz nic neobchazi pres httpData

Mozna lepsi by bylo tohle, ale je slozitejsi na pouziti

enumag
Člen | 2118
+
0
-

David Matějka napsal(a):

je potřeba vytvářet šablonu.

tak kdyz chces invalidovat pouze cast formulare, tak ji musis vytvorit vzdy

No zrovna dependent selectbox rozhodně jde bez šablony, když se napíše obslužné extension pro nette.ajax.js.

breeta
Člen | 68
+
0
-

funguje https://forum.nette.org/…-setrequired#… , díky.

 protected function createComponentCalWindowForm()
    {

        $form = new  Form;


        $profileMain = $this->database->table('cal_window_profile')
            ->where('id_type', $this->idTypewindow)->order('order')->fetchPairs('id', 'name');


        $form['profile'] = new MySelectBox();
        $form['profile']->setItems($profileMain)
            ->setAttribute('class', 'selectProfile form-control')
            ->setRequired('Vyplňte název profilu');

        $glass = $form->addSelect('type_glass')->setRequired('Vyplňte název skla');
        $form['profile']->onChange[] = function ($control, $newValue) use ($glass) {
            $glass->setItems($this->getGlass($newValue));
        };
        $form->addSubmit('send', 'Odeslat');
        $form->onSuccess[] = $this->success;
        return $form;

    }

Editoval breeta (13. 8. 2015 11:13)