pridani tridy k elementu po zpracovani presenterem

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

Ahoj,
jde po zpracovani validace hodnot formulare presenterem (ne pres AddRule) pridat tridu elementu v sablone?

Konkretne:

Presenter, vytvoreni formulare
$form->addText('nazev', 'Název:')->setAttribute('class', 'medium');
$form->onSuccess[] = $this->groupsFormSucceeded;
return $form;

public function groupsFormSucceeded($form)
{
	$values = $form->getValues();
	if (strlen($values->nazev) < 2)
		{
			$form->addError('error nazev');
			-- tady bych chtel pridat tridu **error** elementu do sablony,
			   trida medium by mela zustat --
		}
	...
	}

Sablona:

	{form groupsForm}
<div> {control $form errors} </div>
	{input nazev}
	{/form}

Diky.

Editoval err (2. 10. 2013 15:04)

David Matějka
Moderator | 6445
+
0
-

1. misto setAttribute pouzij

->getControlPrototype()->addClass('medium');

to umozni, aby se mohly tridy pridavat a neprepisovat
2. do zpracovani akorat das:

$form['nazev']->getControlPrototype()->addClass('error');

Editoval matej21 (2. 10. 2013 17:05)

err
Člen | 77
+
0
-

Call to undefined method Nette\Forms\Controls\TextInput::setControlPrototype()
Prohledal jsem cele Nette a mam pouze getControlPrototype. nette mam posledni stable.

David Matějka
Moderator | 6445
+
0
-

j samozrejme tam ma byt get :) to byl preklep :)

err
Člen | 77
+
0
-

Pracuje to vyborne. Dekuji!

Editoval err (2. 10. 2013 17:56)