Form container přidání atributu id

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

Ahoj,

je nějaký způsob, jak přidat containeru atribut id? Četl jsem v ostatních příspěvcích, že to možné není a měl by se použít group. Group je ale jednoúrovňový a to nechci. Chci formulář rozdělit do záložek, ale abych se mohl přepínat mezi záložkami, potřebuju přidat atribut id na content, abych se přepnul přes kotvu.

Mám formulář, který obsahuje taby (tab1, tab2, tab3). Jednotlivé taby odkazuji přes kotvu na obsah, např. ,,#tab1".

Při vytváření formuláře používám containery pro jednotlivé taby, tedy:

$form->addContainer('tab1');
$form->addContainer('tab2');
$form->addContainer('tab3');

Mám vlastní wrapper, který mi container obalí jak potřebuji. Chybí mi akorát containeru přidat dynamicky atribut id, tedy jednomu containeru id=„tab1“, dalšímu id=„tab2“ atd. Když nepřidám, tak se nemohu přepínat mezi jednotlivými taby. Používám bootstrap 4.

Jak toho docílit? Nebo je nějaký lepší způsob jak na formulář s taby?

Děkuji

Jan Mikeš
Člen | 771
+
+1
-

Rad se podelim o sve reseni s taby a rucnim renderovanim: (za napady a navrhy na vylepseni budu rad)

<!-- translatableForm.latte -->
{form $formName}
    {var $renderer = $form->getRenderer()}

    {$renderer->render($form, 'ownerrors')|noescape}

    <fieldset n:inner-foreach="$form['common']->controls as $formControl">
        {$renderer->renderPair($formControl)|noescape}
    </fieldset>

    <ul class="nav nav-tabs" n:inner-foreach="$form['translations']->components as $locale => $container">
        <li n:class="$iterator->first? active">
            <a data-toggle="tab" href="#tab-lang-{$locale}">
                {$locale}
            </a>
        </li>
    </ul>

    <div class="tab-content" n:inner-foreach="$form['translations']->components as $locale => $container">
        <fieldset n:class="$iterator->first? 'active in', tab-pane, fade" id="tab-lang-{$locale}" n:inner-foreach="$container->controls as $formControl">
            {$renderer->renderPair($formControl)|noescape}
        </fieldset>
    </div>

    <fieldset n:inner-foreach="$form['buttons']->controls as $formControl">
        {$renderer->renderPair($formControl)|noescape}
    </fieldset>
{/form}

<!-- použití za předpokladu, že v presenteru mám createComponentMyForm() -->
{include 'translatableForm.latte', formName=>'myForm'}

Editoval Lexi (30. 5. 2016 17:48)

Stejky
Člen | 3
+
0
-

Děkuji za tvé řešení :) Inspiroval jsem se