Atributy formulařových prvků v Nette 2.2

- David Matějka
- Moderator | 6445
se setOption mohlo fungovat maximalne tak nastaveni tridy nebo id, pouzij getControlPrototype

- sKopheK
- Člen | 207
Šlo mi o nastavení custom atributu pro další zpracování
v JavaScript – něco jako data-attribute. Spletl jsem si to
s metodou setAttribute(). Obecně mám asi zmatek v tom
nastavování atributů HTML elementů formulářových prvků.
- pro nastavení atributů s názvem podobným výše zmíněnému je nutné
volat metodu
setAttribute()přímo na objektu formulářového prvku - atributy s klasickými názvy jdou nastavit na objektu
formulářového prvku i na jeho HTML elementu metodou
setXY()nebo jenXY()
A setOption() slouží teda jen pro nastavení custom
proměnných např. pro vlastní makra apod. a vypisuje se jen
class a id (proč?), které přes ně zadáme?

- awsickness
- Člen | 98
ja se pridam s timto dotazem.
zda je mozne udelat neco takoveho:
$element->setAttribute('class','foo');
a pak v sablone
<input n:name="element" class='bar'>
nyni se mi pozde class foo prepise na bar.
Idealni stav applikace nastavi tridy podle vlastni logiky a koder si jen dopise
tridy, ktere potrebuje
Diky.

- Šaman
- Člen | 2668
awsickness napsal(a):
ja se pridam s timto dotazem.
zda je mozne udelat neco takoveho:$element->setAttribute('class','foo');a pak v sablone
<input n:name="element" class='bar'>nyni se mi pozde class foo prepise na bar.
Idealni stav applikace nastavi tridy podle vlastni logiky a koder si jen dopise tridy, ktere potrebuje
Diky.
Takhle jen napojíš zpracování prvku na tvůj ručně vykreslený input. Jestli chceš, aby se ti vykreslil i se všemi atributy, použij
{form fooBar class => 'ajax'}
{label foo /}: {input foo}
{label bar /}: {input bar, class => 'bar', placeholder => 'Bar input'} # výsledkem bude class="foo bar"
{/form}
Editoval Šaman (21. 8. 2014 20:25)

- awsickness
- Člen | 98
tak bohuzel ani takto to nefunguje. stale se mi prepisuje hodnotou pouzitou v sablone.