setEmptyValue(); u Textarea

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

Zdravím společenstvo,

používam metodu setEmptyValue() pro předdefinování hodnoty v textové poli formuláře – textarea. Mám problém s tím, že mi pak ale nefunguje pravidlo na nutnost vyplnit toto pole (->addRule(Form::FILLED, ‚Napište Váš komentář‘);

Mám tam

$form->addTextarea('text','Komentář')
	->setEmptyValue('Váš komentář (povinný)')
	->addRule(Form::FILLED, 'Napište Váš komentář');
$form['text']->getControlPrototype()->class('needed');

Kde dělám chybu?

Díky

Ondřej Brejla
Člen | 746
+
0
-

Neni setEmptyValue() pouze pro select? Podivej se na setDefaults()

Jay Gridley
Člen | 16
+
0
-

Ja myslim, ze neni. V tutorialu na zdrojaku se to pouzivalo na mail. Funguje to spolehlive i u jednoradkoveho input textu, ale nejak vazne textarea.

PetrP
Člen | 587
+
0
-

TextBase::setEmptyValue() nastaví prázdnou hodnotu, tedy to co když je vyplněno se považuje za prázdné např u emailu

$form->addText('email','E-mail')
	->setEmptyValue('@')
	->addCondition(Form::FILLED)
		->addRule(Form::EMAIL, 'E-mail není platný.');

Způsobí že input se zobrazí z přednastavením @ ale když se zavináč odešle tak si Forms myslí že nebyl vyplněn, tedy neprojde condition.

Jay Gridley
Člen | 16
+
0
-

Ano, presne tak, akorat u textarea pak nefunguje podminka na nutnost vyplneni. Bere to tu emptyValue jakoze uz vyplnenou uzivatelem.

EDIT: Jeste tedy dodavam, ze pouzivam verzi 0.8 pro php 5.2

Editoval Jay Gridley (23. 7. 2009 9:07)

David Grudl
Nette Core | 8227
+
0
-

Ono to nefunguje jen na straně JavaScriptové validace. Opravím.