Autor Zpráva
Kulis91
Profil *
Když se mi načte stránka, tak si pomocí tlačítka mohu naduplikovat elementy pro zadávání datumů, kde využívám timepicker. Ovšem po jejím přidání se mi nezobrazuje timepicker u nově přidaných elementů.

co je potřeba udělat?
JaySee
Profil
Kulis91:
No jde o to, že timepicker se přiřadí těm prvkům po nějaké akci, v tomto případě něco jako bodyonload. Jenže po přidání prvku už se nic nikam negeneruje, je tedy potřeba tam hodit callback pro timepicker po přidání nového elementu.
Kulis91
Profil *
JaySee:
mohu poprosit o lepší vysvětlení?


zkusil jsem
  $(".duplicateElement").click(function () {
 $('.datepicker').datepicker({dateFormat: 'dd.mm.yy',changeMonth: true,changeYear: true });
  $('.timepicker').datetimepicker({timeFormat: 'hh:mm',dateFormat: 'dd.mm.yy',separator: ' ',changeMonth: true,changeYear: true});
 
    });

ale to je asi totální blbost
JaySee
Profil
Kulis91:
Představuji si to následovně:

$(".duplicateElement").click(function () {
$( ".datepicker" ).datepicker();
}

Jenom bych znovu regeneroval všechna pole pro datepicker.

Nebo bych tím duplicateElement jenom volal třídu #newdatepicker, čímž by se nemuselo přepisovat vše. Ta třída by se vytvořila během generování toho nového formuláře.


$(".duplicateElement").click(function () {
$( ".newdatepicker" ).datepicker();
}
Kulis91
Profil *
                <form method="post" action="#" class="addRecu">
<input type="button" value="&nbsp;+&nbsp;" onclick="$('.newRecuarray:first').clone().insertAfter('.newRecuarray:last');" />
<input type="button" value="&nbsp;-&nbsp;" onclick="$('.newRecuarray:last').remove();" />
    {loop:recu}
    <div class="newRecuarray">
             <label>Od: <input class="timepicker" name="dt_from_recu[]" value="{tag:recu[].dt_from_recu /}" type="text" /></label>
        <label>Do: <input class="timepicker" name="dt_to_recu[]" value="{tag:recu[].dt_to_recu /}" type="text" /></label>
    {tag:rooms[].status /}
    </div>
    {/loop:recu}     
    <input name="addRoom" type="submit" value="Zpracovat" />
    <input type="button" class="duplicateElement" value="&nbsp;+&nbsp;" onclick="$('.newRecuarray:first').clone().insertAfter('.newRecuarray:last');" />
    <input type="button" value="&nbsp;-&nbsp;" onclick="$('.newRecuarray:last').remove();" />
              

</form>  


jak to tedy do tohoto zasadit?
Kulis91
Profil *
zkusil jsem
$("input[class='addRow']").live('click',function() {
 $('.newRecuarray:first').clone().insertAfter('.new Recuarray:last');
 $('.timepicker').datetimepicker({timeFormat: 'hh:mm',dateFormat: 'dd.mm.yy',separator: ' ',changeMonth: true,changeYear: true});
 });

a to bez úspěchu
Kulis91
Profil *
vyřešeno...
správné řešení
  $("input[class='addRow']").live('click',function() {
       $('.timepicker').datetimepicker("destroy");
       $('.newRecuarray:first').clone(false).insertAfter('.newRecuarray:last');
       $('.timepicker').datetimepicker({timeFormat: 'hh:mm',dateFormat: 'dd.mm.yy',separator: ' ',changeMonth: true,changeYear: true});
  });



omlouvám, se ale ještě jedna věc mi tam vznikla
datum to neustále vkládá do prvního inputu (ale čas se vkládá do správného)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: