Autor | Zpráva | ||
---|---|---|---|
Kulis91 Profil * |
#1 · Zasláno: 28. 7. 2012, 23:09:27
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 |
#2 · Zasláno: 28. 7. 2012, 23:20:41
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 * |
#3 · Zasláno: 28. 7. 2012, 23:23:40 · Upravil/a: Kulis91
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 * |
#5 · Zasláno: 29. 7. 2012, 09:03:46
<form method="post" action="#" class="addRecu"> <input type="button" value=" + " onclick="$('.newRecuarray:first').clone().insertAfter('.newRecuarray:last');" /> <input type="button" value=" - " 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=" + " onclick="$('.newRecuarray:first').clone().insertAfter('.newRecuarray:last');" /> <input type="button" value=" - " onclick="$('.newRecuarray:last').remove();" /> </form> jak to tedy do tohoto zasadit? |
||
Kulis91 Profil * |
#6 · Zasláno: 29. 7. 2012, 12:36:23
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 * |
#7 · Zasláno: 29. 7. 2012, 14:36:02 · Upravil/a: Kulis91
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) |
||
Časová prodleva: 12 let
|
0