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