Vloženie span-u do labelu vo formulári
- SontoEremo
- Člen | 341
Zdravím,
Potreboval by som vložiť span do labelu tak aby výsledok bol
<label>Klientské ID<span class="red">*</span></label>
viem, že sa to robí cez
Html::el('span')
ale neviem ako ďalej a kam to dosadiť našiel som aj iné diskusie ale sú dosť mätúce a môj problém to nevyriešilo.
Vopred všetkým ďakujem.
- SontoEremo
- Člen | 341
Vďaka @matej21
Ale to som prešiel ako vravím stále neviem ako ďalej mám toto
$loginForm->addText('...', 'Klientské ID', Html::el('span', '*'));
Ak si pozriem výsledok v zdrojáku tak to mám v inpute
<input type="text" name="..." size="<span>*</span>" placeholder="...." id="frm-loginForm-...">
a ani neviem ako definovať potom v tom spane aj class=„red“.
Takže sa mi podarilo toto
Html::el('span', '*')->class('red')
Ale stále nemám tušenie ako to vložiť aby bol výsledok
<label for="frm-loginForm-...">Bla Bla Bla<span>*</span></label>
Editoval SontoEremo (3. 12. 2014 23:34)
- janpecha
- Backer | 75
Zkus getLabelPrototype, ten vrací Html objekt, který si můžeš upravit jak chceš.
- Oli
- Člen | 1215
Nefunguje ti to, protože 3. parametr je velikost pole. Musíš to dát všechno do 2. parametru.
Zrovna u té hvězdičky bych si to navěsil na to, když to pole bude vyžadováno. Takže si buď poděď Form z nette a vlož to tam nebo to vlož přímo do formuláře. Potom, když budeš mít u form. prvku setRequire, tak se ti tam připojí ta hvězdička.
$renderer = $this->getRenderer();
$renderer->wrappers['label']['requiredsuffix'] = \Nette\Utils\Html::el('span', '*')->addAttributes(['class' => 'red']);
viz. Vzhled formulářů
- SontoEremo
- Člen | 341
díky @Oli Prepáč mi ale akokoľvek sa snažím to spraviť aj keď form označím setRequired(); tak sa nedeje nič.
$renderer = $loginForm->getRenderer();
$renderer->wrappers['label']['requiredsuffix'] = Html::el('span', '*')->addAttributes(['class' => 'red']);
$loginForm->addText('...', 'Klientské ID')
->setAttribute('placeholder', '...')
->setRequired();
- SontoEremo
- Člen | 341
Takto to mám v šablóne
{form loginForm}
<div class="form-input">
{label client_ID/}
{input client_ID}
</div>
<div class="form-input">
{label client_password/}
{input client_password}
</div>
<div class="form-input">
{input signIn class=>"btn btn-large main-bg"}
</div>
{/form}
A toto je Presenter
protected function createComponentLoginForm() {
$loginForm = new Form;
$loginForm->addProtection();
//$renderer = $loginForm->getRenderer();
//$renderer->wrappers['label']['requiredsuffix'] = Html::el('span', '*')->addAttributes(['class' => 'red']);
$loginForm->addText('client_ID', 'Klientské ID')
->setAttribute('placeholder', 'napr. ECB123456')
->setRequired();
$loginForm->addPassword('client_password', 'Heslo')
->setAttribute('placeholder', 'Vaše heslo')
->setRequired();
$loginForm->addSubmit('signIn', 'Prihlásiť sa');
$loginForm->getElementPrototype()->id = "reg_form";
$loginForm->onSuccess[] = $this->loginFormSuccessSubmited;
return $loginForm;
}
- Oli
- Člen | 1215
Zkus to vykreslit pomocí {control loginForm}
, nevím jestli to
na to má vliv, případně najít nějaký makro, který to vykresluje. Já
používám buď automatickej rendering nebo n:makra, pokud to je složitější
formulář…
Případně, jestli to vykresluješ ručně v šabloně, tak to je většinou
složitější formulář a můžeš použít i něco jako
<div class="form-input">
<label n:name=client_ID>Username<span class="red">*</span>: <input n:name=client_ID></label>
</div>
viz.: FORMULÁŘE V NETTE 2.1
- SontoEremo
- Člen | 341
Áno @ali díky to je presne ono…
Aká banálna vec a toľko ma zdržala :)
Ešte raz Vám všetkým Ďakujem.