克隆元素上的 jQuery 日期选择器

标签 jquery datepicker

我正在尝试将日期选择器控件应用于克隆的输入字段。我正在做的是找到我想要克隆的表行,使用 clone(false) 克隆它,然后为每个输入使用类 .date 调用 datepicker() 他们。代码如下:

$('.repeat').bind('click', function() {
    var parentEl = $(this).parents('.root');
    var lastRow = jQuery.makeArray($(parentEl).find('.last'));
    var newRow = $(lastRow).clone(false);
    $(lastRow).removeClass('last');
    $(newRow).addClass('last');
    newRow.find('input').each(function() {
        this.name = this.name.replace(/\[(\d+)\]/, function(str, p1) {
            return '[' + (parseInt(p1, 10) + 1) + ']';
        });
    }).end().insertAfter($(lastRow));

    newRow.find('.date').each(function() {  
        $(this).removeAttr('id');
        $('.date').datepicker({ dateFormat: 'dd-mm-yy', changeYear: true, yearRange: '1970:2010' });
    });
});

现在 $(this).datepicker()$('.date').datepicker() 都无法将 datepicker 控件附加到 input .日期.

除了日期选择器位之外,上面的代码按预期工作。

大家有什么想法吗?!

最佳答案

如果您先添加行(在应用日期选择器之前)并删除由日期选择器 .hasDatepicker 添加的类,似乎可以工作。

$('.repeat').bind('click', function(){
        var parentEl = $(this).parents('.root');
        var lastRow = jQuery.makeArray($(parentEl).find('.last'));
        var newRow = $(lastRow).clone(false, false);
        $(lastRow).removeClass('last');
        $(newRow).addClass('last');
        $('.root').append(newRow); // added this

        newRow.find('.date').each(function() {
            $(this).removeAttr('id').removeClass('hasDatepicker'); // added the removeClass part.
            $('.date').datepicker({dateFormat: 'dd-mm-yy', changeYear: true, yearRange: '1970:2010'});
        });
});

演示:http://jsfiddle.net/gaby/LCfC2/

关于克隆元素上的 jQuery 日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788999/

相关文章:

jquery - 无论悬停位置如何,全宽下拉菜单 Bootstrap

php - PHP 中人类可读的、当前时间敏感的日期和时间格式

javascript - jQuery 在回发后将 DatePicker 日期文本保留到文本框中

angular - 有没有办法根据日期过滤 Material 表

javascript - JQGrid/在添加/编辑窗口中选择的日期

javascript - 如何仅将月份从 Kendo UI 中的日期选择器小部件提取到警报框?

javascript - 带有时隙选择的 jQuery 日历

javascript - 在javascript中修改对象值的问题

jquery - 即时禁用 Jquery 插件/函数

JQuery 使用 .each() 延迟