problém s umístěním popisku radio buttonu
- n.u.r.v.
- Člen | 485
Ahoj, ve formuláři mám radiolist:
v presenteru takto:
public function createComponentUzivatelEditForm() {
$opravneni = array(
'1' => 'Administrátor',
'2' => 'Uživatel'
);
$form = new Form();
$form->setRenderer(new BootstrapRenderer);
...
$form->addRadioList('role', 'Role:', $opravneni)
->setDefaultValue($role)
->setRequired('Vyberte prosím roli uživatele!');
...
}
a v latte vykreslení formuláře:
...
{form uzivatelEditForm}
<?php $form->render('begin') ?>
<?php $form->render('errors') ?>
...
...
<label class="required control-label" for="frmuzivatelEditForm-role">Role:</label>{input role}
...
A problém je, že popisek k radibuttonu se vykreslí pod tím
radiobuttonem, takže to vypadá děsně – viz obrázek:
"":http://2i.cz/dc64b69c4f
Nevíte, jak to udělat, aby popisek u radiobuttonu byl u něj po boku (alespoň za ním, když ne před ním)… Díky moc.
Editoval n.u.r.v. (6. 8. 2013 16:03)
- frosty22
- Člen | 373
No trošku škoda, když už používáš BoostrapRenderer, že si nenecháš ten formulář celý vykreslit rovnou, čili:
{control uzivatelEditForm}
Potom tedy jen druhá věc, zbytečně vykresluješ celý label tag, to samé co tam máš uvedeno stačí takto:
{form uzivatelEditForm}
{control uzivatelEditForm errors}
{label role /}{input role}
{/form}
A nakonec k tvému dotazu, tak možná takhle:
{form uzivatelEditForm}
{control uzivatelEditForm errors}
{label role /}
<div class="controls">{input role}</div>
{/form}
- n.u.r.v.
- Člen | 485
frosty22 napsal(a):
No trošku škoda, když už používáš BoostrapRenderer, že si nenecháš ten formulář celý vykreslit rovnou, čili:
{control uzivatelEditForm}
Potom tedy jen druhá věc, zbytečně vykresluješ celý label tag, to samé co tam máš uvedeno stačí takto:
{form uzivatelEditForm} {control uzivatelEditForm errors} {label role /}{input role} {/form}
A nakonec k tvému dotazu, tak možná takhle:
{form uzivatelEditForm} {control uzivatelEditForm errors} {label role /} <div class="controls">{input role}</div> {/form}
Ok, díky – zkusím a dám vědět…
- n.u.r.v.
- Člen | 485
frosty22 napsal(a):
No trošku škoda, když už používáš BoostrapRenderer, že si nenecháš ten formulář celý vykreslit rovnou, čili:
{control uzivatelEditForm}
Potom tedy jen druhá věc, zbytečně vykresluješ celý label tag, to samé co tam máš uvedeno stačí takto:
{form uzivatelEditForm} {control uzivatelEditForm errors} {label role /}{input role} {/form}
A nakonec k tvému dotazu, tak možná takhle:
{form uzivatelEditForm} {control uzivatelEditForm errors} {label role /} <div class="controls">{input role}</div> {/form}
Ahoj, už vím, proč jsem nepoužil
{control uzivatelEditForm}
Sice to funguje, ale potřebuji nad předposlední pole umístit kod pro zobrazení kvality hesla:
<p><strong for='passwordStrength'>Kvalita hesla: </strong><span id='passwordDescription'>Nebylo vloženo heslo!</span><div id='passwordStrength' class='strength0'></div></p><br>
Jak to udělat, když používám control? Díky
- frosty22
- Člen | 373
To já bych byl línej a udělal bych to přes CSSka a position absolute .. či alternativně bych si udělal vlastní control, který by již tohle celé obsahoval i s vlastním render tedy, což je vesměs to jediné podstatné – zdědit PasswordControl a v render rozšířit o tento kus HTML kodu
- n.u.r.v.
- Člen | 485
frosty22 napsal(a):
To já bych byl línej a udělal bych to přes CSSka a position absolute .. či alternativně bych si udělal vlastní control, který by již tohle celé obsahoval i s vlastním render tedy, což je vesměs to jediné podstatné – zdědit PasswordControl a v render rozšířit o tento kus HTML kodu
ééé? mohl by si sem dát kus kodu s tím controlem? zas tak se v tom ještě nevyznám…díky
- frosty22
- Člen | 373
No postup s tím Controlerem je trošku těžší, ale vesměs například tady:
https://componette.org/search/?…
https://github.com/…swdInput.php
je addon, který rozšiřuje password o nějaké možnosti, v tvém případě to bude lehčí stačí jen přepsat metodu .. getControl() .. čili vytvoříš 1 třídu nějaký svůj ExtendedPasswordInput, podědíš z Nette\Forms\Controls\TextInput a přepíšeš tu metodu ve které zavoláš parent::getControl() a doplníš tu HTML část ..
A někde musíš při startu aplikace přidat toto tvé rozšíření něco
jako:
Nette\Forms\Form::extensionMethod(‚addPswd‘, function (Form $form, $name,
$label) { return $form[$name]=new PswdInput($label); })
viz všechny formulářová rozšíření