我在一个报价构建页面中使用jquery datepicker。每次单击以添加行时,该页都会复制隐藏的表行。
不幸的是,对于第三行和后续行,当您使用datepicker (显示为fiine)时,日期被输入到第二行,而不是被选中的行。
使用firebug,我已经确定为每个后续行输入的日期字段与第二行具有相同的id。这是因为当我加载页面时,为每个“添加的行”克隆的模板行已经存在。
对于如何解决这个问题,有人有什么建议吗?
Jquery:
$(document).ready(function(){
refreshDatepickers();
$('#additem').click(function(){
addItem();
refreshDatepickers();
return false;
});
function addItem(){
var itemRow = $('#rowtemplate');
var newRow = itemRow.clone().removeAttr('id');
newRow.appendTo($('.newQuote tbody'));
newRow.attr('id', 'item_'+(newRow.siblings().length+1));
return false;
}
function refreshDatepickers(){
var tobeDated = $('.datepicker');
$.each(tobeDated, function(){
$(this).removeClass('hasDatepicker').datepicker({dateFormat: "dd/mm/yy"});
});
}
为每个新行复制的行的简化html如下: datepicker iinput获得这种动态添加的id (我假设是通过datepicker插件) id="dp1358783794011“
<div style="display:none;">
<table>
<tr id="rowtemplate">
<td><input type="text" class="qi-name" name="items[title][]"/></td>
<td><textarea class="qi-desc" name="items[description][]"></textarea></td>
<td><input type="text" class="qi-del datepicker" name="items[delivery][]"/></td>
<td class="qi-act">
<a href="#" class="actAs qi-apply"></a>
<a href="#" class="qi-delete"></a>
</td>
</tr>
</table>
发布于 2013-01-22 00:29:40
建议在运行任何其他代码之前先缓存行模板,然后在添加新行时添加缓存行的克隆
/* remove ".find(':input').val('').end()" if no data will be populated at run time*/
var cacheRow=$('#rowtemplate').clone().removeAttr('id').find(':input').val('').end();
/* run init code*/
function addItem(){
var newRow =cacheRow.clone();
newRow.appendTo($('.newQuote tbody'));
newRow.attr('id', 'item_'+(newRow.siblings().length+1));
return false;
}
https://stackoverflow.com/questions/14442476
复制相似问题