2012-02-08 120 views
0

那麼,我知道有很多關於它的帖子,但我迄今爲止嘗試了很多解決方案,但無法使其工作。會發生什麼情況是,當我克隆div時,使用datepicker克隆的字段會同時發生變化,因此,不管我在一個字段中選擇的日期是什麼日期,都會在另一個字段中。 我錯過了什麼,所以我可以重置值新的?克隆日期選擇器

$(document).ready(function() { 
$('#btnAdd').click(function() { 

$('.datepicker').datepicker('destroy'); 

var num = $('.clonedInput').length; 
var newNum = new Number(num + 1); 
var newElem = $('#input' + num).clone().attr('id', 'input' + newNum); 

newElem.find('#label_val_ini label').attr('for', 'val_ini' + newNum); 
newElem.find('#input_val_ini input').attr('class', 'calendario' + newNum).attr('name', 'val_ini[]' + newNum).val(''); 
newElem.find('#input_val_ini input').attr('class', 'calendario' + newNum).attr('class', 'calendario' + newNum).val(''); 


newElem.find('#label_val_fim label').attr('for', 'val_fim' + newNum); 
newElem.find('#input_val_fim input').attr('class', 'calendario' + newNum).attr('name', 'val_fim[]' + newNum).val(''); 
newElem.find('#input_val_fim input').attr('class', 'calendario' + newNum).attr('class', 'calendario' + newNum).val(''); 
$('#input' + num).after(newElem); 
$('#btnDel').attr('disabled',false); 
if (newNum == 50) 
$('#btnAdd').attr('disabled',true); 
$('.datepicker').datepicker(); 
}); 
$('#btnDel').click(function() { 
var num = $('.clonedInput').length; 
$('#input' + num).remove();  
$('#btnAdd').attr('disabled',false); 
if (num-1 == 1) 
$('#btnDel').attr('disabled',true); 
}); 
$('#btnDel').attr('disabled',true); 
}); 

<form action="inclui_pacote.php" method="post" id="sign-up_area"> 
<div id="input1" style="margin-bottom:4px;" class="clonedInput"> 
<table> 
<tr> 
<td width="90"><label for="val_ini">Início de validade:</label></td> 
<td width="144"><input name="val_ini[]" type="text" class="datepicker" tabindex="1" value="" size="10" maxlength="10" id="input_val_ini"/></td> 

<td width="90"><label for="val_fim">Fim da validade:</label></td> 
<td width="144"><input name="val_fim[]" type="text" class="datepicker" tabindex="1" value="" size="10" maxlength="10" id="input_val_fim"/></td> 
</tr> 
</table> 
</div> 
    <input type="button" id="btnAdd" value="+ Hotel" /> 
    <input type="button" id="btnDel" value="- Hotel"/> 
    <input name="cadastrar" type="submit" value="Cadastrar"> 
    </form> 

回答

0

爲什麼要克隆datePicker?

從一開始就創建另一個datePicker,如果需要隱藏它,並在第一個datePicker的值被更改時更改它的值將不會執行該任務嗎?

問題是,一旦插件被應用,datePicker就不再是單個DOM對象。因此,克隆原始DOM元素,即使使用其所有datePicker數據也不會創建對象。

另一種解決方案是,將克隆原始的datePicker,創建一個新的INPUT元素,應用datePicker,然後再次給它第一個DatePicker的值。

0

jQuery創建一個類一個ID,並且都被克隆;克隆中也不應該存在。

$('.calendar:last').removeClass('hasDatepicker').attr('id',"").datepicker(); 

我希望這適合你,就像它爲我做的那樣。