Vyplňení defaultní hodnoty i po odeslání formuláře

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

Dobrý den,

chci aby se mi v inputboxu defaultně vyplňil nějaký text. Použiji tedy metodu $inputbox->setValue(‚defaultní text‘); Pokud ale formulář odešlu a formulář zaznamená chybu, místo nastavené hodnoty ponechá uživatelem vyplněnou. Jak mám docílit toho aby v každém případě nastavil nějakou defaultní hodnotu a nepřepisoval mi ji uživatelem vyplňenou?

Solution
Člen | 50
+
0
-

Zdravím,
nevím, jestli ti to pomůže, moc mi to nemyslí(hnusný čas), ale napadlo mě tohle:

<?php
protected function createComponentFifteen()
    {
        $fifteen = new NAppForm();
        $fifteen->addText('nejakyinput','')->addRule(NAppForm::FILLED,'Smůůla');
        $fifteen->addSubmit('send','yes')->setDefaultValue('cica');
        $fifteen->onSubmit[] = array($this,'Probiha');
        $fifteen->onInvalidSubmit[] = array($this,'Nepodarilo');
        return $fifteen;
    }

    public function Probiha()
    {

    }

    public function Nepodarilo(NAppForm $form)
    {
        $form['nejakyinput']->setValue('cica');
    }
?>

Názvů nevšímat, mně osobně to na localu šlo, podle tvých představ.

Bye.

RomikTronik
Člen | 27
+
0
-

díky, funguje, vůbec jsem netušil, že můžu vyplnit onInvalidSubmit[]

net-vor
Člen | 35
+
0
-

No mně k tomu napadá jen dotaz, k čemu je potom textinput, když tam uživatel nemůže nic napsat… pak by to asi nemělo být řešeno textinputem, ale např. hiddeninputem, případně u textimputu nastavit atribut readonly, aby to nešlo přepisovat. Ale nevím, k v jaké situaci to potřebuješ, takže jenom uvažuju nahlas…

RomikTronik
Člen | 27
+
0
-

Jedná se o captchu, člověk vyplní text který vidí na obrázku, při špatném vyplnění formuláře se obrázek captchy změní, proto nechci aby tam zůstával původně vyplněný text.