动态jQuery UI datepicker元素

时间:2012-09-03 12:29:05

标签: javascript jquery-ui datepicker

我使用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函数不起作用。

我可以做些什么来让新的工作像现有工作一样?

任何建议表示赞赏。

感谢。

1 个答案:

答案 0 :(得分:0)

由于您可能正在调用文档创建的迭代,因此稍后添加到DOM的项目不会实例化为新的日期选择器,因此您必须在要添加日期选择器的每个新添加的元素上显式调用.datepicker()上。

基本上,将代码从上面的迭代器移动到它自己的函数,然后执行:

$('.datepicker').each(myDatePickerFunction($(this));

并在稍后添加的元素上调用相同的函数。