getLabelPrototype() u položky formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- nanuqcz
- Člen | 822
Ahoj,
nevím v čem je chyba, ale prostě mi nejde změnit label u políčka ve
formuláři.
$form = new Form();
$form->addText('foo', 'Bar');
$form['foo']->getLabelPrototype()->setHtml('<a href="foo.html">Foo</a>');
Po tomto kódu se u pole foo stejně zobrazí popisek
„Bar“, ať dělám co dělám.
Co dělám špatně? Díky

- LeonardoCA
- Člen | 296
Jaký používáš rendererer? Je možné. že nepodporuje a ořezává html v label…
Editoval LeonardoCA (17. 10. 2012 11:49)

- nanuqcz
- Člen | 822
Nic jsem neměnil, takže předpokládám že DefaultFormRenderer.
Zvláštní je, že když nad tím prototypem zavolám třeba
addClass(), tak vše funguje. Ale jakmile volám metody jako
setHtml(), add(), insert(), tak se změny
ve formuláři neprojeví (i když v samotném prototypu ano).
$form->addText('foo', 'Bar');
$prototype = $form['foo']->getLabelPrototype();
$prototype->setHtml('<p>nanuqcz</p>');
echo $prototype->render(); // nanuqcz
echo $form['foo']->getLabelPrototype(); // Bar

- David Matějka
- Moderator | 6445
https://api.nette.org/…rol.php.html#406 label se prepise, pokud je nastaveno caption, takze asi by to slo takhle:
<?php
$form['foo']->caption = Html::el("a")->setText("foo")->setHref("http://bar.com");
?>
nebo vubec nenastavovat caption