Label tag v Latte, tak aby někde výpsal popis a byl okolo input elementu?

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

V dokumentaci u formulářů najdeme:

{form signForm class => 'big'}
<table>
<tr class="required">
    <th>{label name /}</th>
    <td>{input name cols => 40, autofocus => TRUE}</td>
</tr>
</table>

Lze použít i zápis:

<th>{label name }kód a text{/label}</th>

ten již udělá párový label a dodá mezi něj cokoli, ale již nevypíše název label elementu, nebo nevím jak…

Já bych právě potřeboval udělat:

<label for="el"><input id="el" type="checkbox" value="1">Název checkboxu</label>

Akorát nevím jak to dostat do Latte a jeho syntaxe…
Toto se blíží:

{label name }{input name} text{/label}

ale jde tam nějak dostat název z toho label aniž ho mám natvrdo v šabloně?

Michalek
Člen | 211
+
0
-

Jde tohle, jestli je to úplně správně, to nevím.

{label name}{$form['name']->getLabel()}{/label}

Editoval Michalek (6. 9. 2013 16:46)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

To myslím správně není, poněvadž to vypíše tag vnořeně dvakrát. Správně takto:

{label name}{input name} {$form[name]->caption}{/label}
Oggy
Člen | 306
+
0
-

vojtech.dobes napsal(a):

To myslím správně není, poněvadž to vypíše tag vnořeně dvakrát. Správně takto:

{label name}{input name} {$form[name]->caption}{/label}

Jak toho docílit s makrem n:name, potřebuji labelu dávat podmíněné classy. Ale

<label n:name="$input->name" n:class="$input->error ? error">{$input->caption}
	{input $input}
</label>

nefunugje. Call to a member function attributes() on a non-object

washo
Člen | 88
+
+1
-

Ono to funguje, akorat se muze stat, ze se snazis vypisovat vypisovat label inputu, ktery ho nema.

<label n:if="$input->label" n:name="$input->name" n:class="$input->error ? error">{$input->caption}
    {input $input}
</label>

Editoval washo (26. 2. 2015 12:01)

mates
Člen | 36
+
0
-

Zkoušel jsem to, tak jak píšeš u Checkboxu, ale u něj nefunguje n:if="$input->label", takže jsem ten label podmínil n:if="$input->caption". Přijde mi to i asi logičtější ptát se jenom na to co se pak použije.

<div n:if="$input instanceof Nette\Forms\Controls\Checkbox" class="form-group {$input->required ? required}">
	<label n:if="$input->caption" n:name="$input->name">
		<input type="checkbox" n:name="$input">
		{$input->caption}
	</label>
	<span class=error n:ifcontent>{$input->error}</span>
</div>