replicator pridani setDefaultValue a kotrola zda jsou vyplneva vsechna policka v containeru

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

ahoj v kontaktnim formulari mam replicator pro pridavani vice telefonich cisel

$phones = $form->addDynamic('phones', function (Container $phone)
        {
            $phone->addText('predvolba', '')
                ->setRequired('Zadejte předvolbu.')
                ->setDefaultValue('+420');

            $phone->addText('cislo', 'Telefon:')
                ->setRequired('Zadejte telefon.');

            $phone->addSubmit('removePhone', '-')
                    ->setValidationScope(false) # disables validation
                    ->addRemoveOnClick();

            $pretyp = $phone['removePhone']->getControlPrototype();
            $pretyp->setName("button");
            $pretyp->create('i class="icon-minus"');

        }, 1);

        /** @var \Kdyby\Replicator\Container $addPhone */
        $phones->addSubmit('addPhone', '+')
                ->setValidationScope(FALSE)
                ->addCreateOnClick();

        $pretyp = $phones['addPhone']->getControlPrototype();
        $pretyp->setName("button");
        $pretyp->create('i class="icon-plus"');

a sablone mam

<div id="telefoniCislaContainer">
               {foreach $form['phones']->containers as $id=>$phone}

                   <div class="control-group error">
                       {label $phone['cislo'] class=>"control-label"/}
                       <div class="controls vosyNaseptavacObal">
                           {input $phone['predvolba'] class=>"input-mini", autocomplete=>"off"}
                           {input $phone['cislo'] autocomplete=>"off"}

                       {if $id>0}
                           {input $phone['removePhone'] class=>"btn btn-mini btn-warning"}
                       {/if}

                           <div id="naseptavacTelefon" class="vosyNaseptavac"></div>
                       </div>
                   </div>

               {/foreach}

               <div class="control-group">
                   <div class="controls">
                       {input phones-addPhone class=>"btn btn-mini btn-success"}
                   </div>
               </div>
           </div>

problem 1.
kdyz zmacknu „addPhone“ prida se mi spravne dve pole „predvolba“ a „cislo“ ale v predvolbe se mi nevypise „->setDefaultValue(‚+420‘)“

problem 2.
funkce „->addCreateOnClick()“ se provede kdyz je vyplneno jdno z policek „predvolba“ nebo „cislo“, da se funkce nejak prispusobit tak aby se fce zavolala pouze kdyz jsou obe policka vyplnena?

David Matějka
Moderator | 6445
+
0
-
  1. https://github.com/…or/issues/29 – zkus pouzit setValue
  2. pokud se nepletu, tak ne. ale neni to spatny napad na feature… ted bys asi musel pouzit vlastni onClick callback (jako tady) a nepouzivat addCreateOnClick. V tom callbacku to nejak rucne zkontrolovat. + tam pridat dulezite veci z addCreateOnClick, hlavne asi vymazani onSuccess
vosy
Člen | 532
+
0
-

super, tak tohle jsem uz poresil

Editoval vosy (27. 12. 2014 16:49)