0

我正在使用 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 来克隆包含多个表单元素的跨度。创建新元素时,datepicker 函数不起作用。

我该怎么做才能使新的像现有的一样工作?

任何建议表示赞赏。

谢谢。

4

1 回答 1

0

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

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

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

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

于 2012-09-03T12:36:01.393 回答