setOption(‚id‘, <id>) nefunguje, nastavavani hodnot podle jinych prv. v frm
- koudis
- Člen | 33
Ahoj,
narazil jsem na mesi problem ohledne „setOption“ pro
„addText“.(setOption(‚id‘, <moc_pekne_id>))
Vypada to, ze z nejakeho duvodu nefunguje a naprosto netusim proc :).
dalsi moje otazka se tyka toho, jak defaultne nastavovat hodnoty input poli v zavislosti na jinem input poli? Chci napriklad, aby, kdyz uzivatel vyplni input s nazvem „A“, aby se mi jeho hodnota ve formulari zkopirovala do input s nazvem „C“. Jde toto nejak udelat?
Nize prikladam cely formular…
if ($this->entity->isNew()) {
$form->addGroup('groupAddBranch');
} else {
$form->addGroup('groupEditBranch');
}
$form->addHidden('id');
$address = $form->addContainer('address');
$form->addText('name', 'name')
->setAttribute('placeholder', 'namePlaceholder')
->setRequired('nameRequired');
$address->addText('email', 'email')
->setAttribute('placeholder', 'emailPlaceholder')
->setRequired('emailRequired')
->setType("email")
->addRule(Form::EMAIL, 'emailRule');
$address->addText('phone', 'phone')
->setAttribute('placeholder', 'phonePlaceholder')
->setRequired('phoneRequired');
$address->addText('street', 'street')
->setAttribute('placeholder', 'streetPlaceholder')
->setRequired('streetRequired');
$address->addText('city', 'city')
->setAttribute('placeholder', 'cityPlaceholder')
->setRequired('cityRequired');
$address->addText('zipCode', 'zipCode')
->setAttribute('placeholder', 'zipCode')
->setRequired('zipCodeRequired')
->addRule(Form::MAX_LENGTH, 'zipCodeMaxLength', 5);
$address->addText('state', 'state')
->setAttribute('placeholder', 'statePlaceholder');
$items = $this->countries->findActivePairs();
$address->addSelect('country', 'companySetting.branchForm.country', $items)
->setTranslator($this->translator)
->setPrompt('companySetting.branchForm.countryPrompt')
->setRequired('companySetting.branchForm.countryRequired');
if ($this->entity->isNew()) {
$login = $form->addContainer('login');
$login->addCheckbox('loginCheckbox', 'login')
->addCondition(FORM::EQUAL, TRUE)
->toggle('login-passwod')
->toggle('login-email');
$login->addPassword('password', 'password')
->setOption('id', 'login-password')
->setAttribute('placeholder', 'passwordPlaceholder')
->addConditionOn($login['loginCheckbox'], Form::EQUAL, TRUE)
->setRequired('passwordRequired')
->addRule(Form::MIN_LENGTH, 'passwordRule', 6);
$login->addText('email', 'email')
->setOption('id', 'login-email')
->setType("email")
->setAttribute('placeholder', 'emailPlaceholder')
->addConditionOn($login['loginCheckbox'], Form::EQUAL, TRUE);
}
$form->addSubmit('submit', 'submit');
Editoval koudis (10. 11. 2015 16:40)
- David Matějka
- Moderator | 6445
narazil jsem na mesi problem ohledne „setOption“ pro „addText“.(setOption(‚id‘, <moc_pekne_id>))
kde si narazil, ze by to melo fungovat? pouzij bud
setHtmlId('foo')
nebo setAttribute('id', 'foo')
uzivatel vyplni input s nazvem „A“, aby se mi jeho hodnota ve formulari zkopirovala do input s nazvem „C“. Jde toto nejak udelat?
jako v prohlizeci? to si udelej v JS
- koudis
- Člen | 33
narazil jsem na mesi problem ohledne „setOption“ pro „addText“.(setOption(‚id‘, <moc_pekne_id>))
kde si narazil, ze by to melo fungovat? pouzij bud
setHtmlId('foo')
nebosetAttribute('id', 'foo')
https://doc.nette.org/…s/validation
v sekci „Jak se vyhnout manualnimu renderovani“.
Bohuzel, tva varianta nefunguje. Schova to sice input, ale necha Label, coz
je nepekne.
Nejake dalsi napady? (budu rad :))
uzivatel vyplni input s nazvem „A“, aby se mi jeho hodnota ve formulari zkopirovala do input s nazvem „C“. Jde toto nejak udelat?
jako v prohlizeci? to si udelej v JS
OK, diky. vyzkouzim „Nette form a javascript“:).
Honza
Editoval koudis (10. 11. 2015 16:49)
- David Matějka
- Moderator | 6445
Jo ty chces nastavit ID pro cely div, ktery obaluje form a label. To v navodu by melo fungovat – tedy pokud pouzivas DefaultFormRenderer a nevykreslujes to jinak (jinym rendererem nebo manualne)
- koudis
- Člen | 33
David Matějka napsal(a):
Jo ty chces nastavit ID pro cely div, ktery obaluje form a label. To v navodu by melo fungovat – tedy pokud pouzivas DefaultFormRenderer a nevykreslujes to jinak (jinym rendererem nebo manualne)
a ted dalsi otazka – jak zjistim, jaky renderer pouzivam?
Hledal jsem hledal, ale asi spatne…
Honza
Editoval koudis (10. 11. 2015 16:53)
- David Matějka
- Moderator | 6445
Pokud si nenastavoval zadny pres setRenderer
, tak pouzivas ten
defaultni.
A jak vykreslujes? pomoci {control ..}
nebo
{form ..}
?
- David Matějka
- Moderator | 6445
ukaz, jak se vygenerovalo HTML treba toho password inputu (vcetne obalovaciho div-u)
- koudis
- Člen | 33
David Matějka napsal(a):
ukaz, jak se vygenerovalo HTML treba toho password inputu (vcetne obalovaciho div-u)
vyskousel jsem nastavit DefaultFormRenderer a setOption funguje. Najdu renderer, ktery formular pouziva a opravim ho ci nejak jinak znasilnim.
Opravdu by me zajimalo, proc lide implementuji vlastni renderer uplne od znova…
Editoval koudis (10. 11. 2015 17:11)