Místo chyby NULL v alertu validace formu

- Jerry123456789
 - Člen | 37
 
Ahoj, mám formulář pro jednoduchou registraci, ale ať dělám, co dělám, vždy při validační chybě alert vrátí null. Co s tím? Kód:
<?php
protected function createComponentRegisterForm()
	{
    $form = new Form;
    $form->addText('name', 'Jméno:')
     ->addRule(Form::FILLED, 'Zadejte jméno')
     ->addRule(Form::MIN_LENGTH, 'Zadané jméno je příliš krátké, zvolte si jméno alespoň o %d znacích', 5);
    $form->addText('email', 'E-mail:')
     ->setEmptyValue('@')
     ->addRule(Form::EMAIL, 'E-mailová adresa není platná');
    $form->addPassword('password', 'Heslo:')
     ->addRule(Form::FILLED, 'Zvolte si heslo')
     ->addRule(Form::MIN_LENGTH, 'Zadané heslo je příliš krátké, zvolte si heslo alespoň o %d znacích', 8);
    $form->addPassword('password2', 'Heslo pro kontrolu:')
     ->addRule(Form::FILLED, 'Zadejte heslo ještě jednou pro kontrolu')
     ->addRule(Form::EQUAL, 'Zadané hesla se neshodují', $form['password']);
    $form->addProtection('Vypršel ochranný časový limit, odešlete prosím formulář ještě jednou');
    $form->addSubmit('register', 'Registrovat');
    $form->onSubmit[] = array($this, 'registerFormSubmitted');
    return $form;
	}
?>
0.9.1 (revision dc607f0 released on 2009–09–18)
5.2 verze běžící na 5.3, Apache 2.2.12 Win

- Jerry123456789
 - Člen | 37
 
Hups, chybička se vloudila. To bohužel nic nevyřešilo, když nechám formulář prázdný a odešlu, alert vyhodí null.

- Ondřej Mirtes
 - Člen | 1536
 
Ty jo, tak to nevím. Nic s rendererem a ClientScriptem tam neděláš… Jak to vykresluješ?
Zkus jen tak na zkoušku udělat tenhle jednoduchý formulář:
protected function createComponentTestForm() {
 $form = new AppForm;
 $form->addText('test', 'Testovací text')
  ->addRule(Form::FILLED, 'Vyplňte testovací text!');
 $form->addSubmit('submit', 'Odeslat');
 return $form;
}
a v šabloně ho vykreslit přes:
{control testForm}
				
- Jerry123456789
 - Člen | 37
 
1. renderuju přes widget
2. nemůžeš tam mít addSubmit(‚submit‘);, ⇒ InvalidArgumentException:Name ‚submit‘ is not allowed due to JavaScript limitations.
3. null :-(
//tak u toho mýho formu změna, předtim (Form) bylo null všude, teď (AppForm) je jen při více chybách zároveň, pokud je jedna chyba, hláška je vpohodě. Ale občas i toto neplatí, prostě to dá null i když je jen jedna chyba. Davide!! Pomoz!
Editoval Jerry123456789 (20. 10. 2009 22:36)

- Ondřej Mirtes
 - Člen | 1536
 
Mno, možná je to kvůli tomu, že ty dodatečný podmínky (EMAIL,
MIN_LENGTH, EQUAL) bys tam měl mít až za
addCondition(Form::FILLED)->, ale je to divný. Zkus to.
Myslím to takhle (udělej si to obdobně u všech inputů):
$form->addText('email', 'E-mail:')
     ->setEmptyValue('@')
     ->addCondition(Form::FILLED)
     ->addRule(Form::EMAIL, 'E-mailová adresa není platná');
				
- Jerry123456789
 - Člen | 37
 
Měl jsem cp1250, po přehození na UTF-8 vše funguje. Díky davide, ale proč?? I s cp1250 mi to občas hlášku vyhodilo.