我使用jQuery UI datepicker函数在我的html表单中创建了许多日期字段。
我使用以下代码获取任何带有'datepicker'类的输入字段:
$('.datepicker').each(function() {
var id = $(this).attr('id').split('_')[0];
if ($('#'+id+'_value').val()) {
var initialdate = new Date($('#'+id+'_value').val());
}
else {
var initialdate = new Date();
}
$(this).val($.datepicker.formatDate('DD, d MM, yy', initialdate));
$('#'+$(this).attr('id').split('_')[0]+'_value').val($.datepicker.formatDate('yy-mm-dd', initialdate));
$(this).datepicker({
'dateFormat': 'DD, d MM, yy',
'altField': '#'+id+'_value',
'altFormat': 'yy-mm-dd'
});
});
但是,我还使用其他一些javascript来克隆包含多个表单元素的span。创建新元素时,datepicker函数不起作用。
我可以做些什么来让新的工作像现有工作一样?
任何建议表示赞赏。
感谢。
答案 0 :(得分:0)
由于您可能正在调用文档创建的迭代,因此稍后添加到DOM的项目不会实例化为新的日期选择器,因此您必须在要添加日期选择器的每个新添加的元素上显式调用.datepicker()上。
基本上,将代码从上面的迭代器移动到它自己的函数,然后执行:
$('.datepicker').each(myDatePickerFunction($(this));
并在稍后添加的元素上调用相同的函数。