Javascript 无法在表中的克隆行上获取日期选择器

Javascript 无法在表中的克隆行上获取日期选择器,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我试图在表中的克隆行上获取日期选择器,但没有实现 我的表格代码如下: <input type="text" class="form-control dp4 dob4" autocomplete="off" name="date[]" required> <input type="button" class="btn btn-default addButton" value="Add" /> $(function() { $("#t

我试图在表中的克隆行上获取日期选择器,但没有实现

我的表格代码如下:

 <input type="text" class="form-control dp4 dob4" autocomplete="off"  name="date[]" required>
 <input type="button" class="btn btn-default addButton" value="Add" />
 $(function() {
                $("#table-data").on('click', 'input.addButton', function() {
                    var $tr = $(this).closest('tr');
                    var allTrs = $tr.closest('table').find('tr');
                    var lastTr = allTrs[allTrs.length - 1];
                    var $clone = $(lastTr).clone();
                    $clone.find('td').each(function() {
                        var el = $(this).find(':first-child');
                        var id = el.attr('id') || null;
                        if (id) {
                            var i = id.substr(id.length - 1);
                            var prefix = id.substr(0, (id.length - 1));
                            el.attr('id', prefix + (+i + 1));
                            el.attr('name', prefix + (+i + 1));
                        }
                    });
                    $clone.find('input:text').val('');
                    $tr.closest('table').append($clone);
                });

                $("#table-data").on('change', 'select', function() {
                    var val = $(this).val();
                    $(this).closest('tr').find('input:text').val(val);
                });
            });
$('.dob4').datepicker({
                    format: 'dd-mm-yyyy',
                    startDate: '-0m',
                    autoclose: true

                });
我的日期选择器代码如下:

 <input type="text" class="form-control dp4 dob4" autocomplete="off"  name="date[]" required>
 <input type="button" class="btn btn-default addButton" value="Add" />
 $(function() {
                $("#table-data").on('click', 'input.addButton', function() {
                    var $tr = $(this).closest('tr');
                    var allTrs = $tr.closest('table').find('tr');
                    var lastTr = allTrs[allTrs.length - 1];
                    var $clone = $(lastTr).clone();
                    $clone.find('td').each(function() {
                        var el = $(this).find(':first-child');
                        var id = el.attr('id') || null;
                        if (id) {
                            var i = id.substr(id.length - 1);
                            var prefix = id.substr(0, (id.length - 1));
                            el.attr('id', prefix + (+i + 1));
                            el.attr('name', prefix + (+i + 1));
                        }
                    });
                    $clone.find('input:text').val('');
                    $tr.closest('table').append($clone);
                });

                $("#table-data").on('change', 'select', function() {
                    var val = $(this).val();
                    $(this).closest('tr').find('input:text').val(val);
                });
            });
$('.dob4').datepicker({
                    format: 'dd-mm-yyyy',
                    startDate: '-0m',
                    autoclose: true

                });
请帮助解决这个问题


谢谢。

有解决办法

工作原理:

 $("#table-data").on('click', 'input.addButton', function () {
     ...
    $clone.find('.dob4').removeAttr('id').removeClass('hasDatepicker');
    $clone.find('.dob4').datepicker({
         format: 'dd-mm-yyyy',
         startDate: '-0m',
         autoclose: true
     });
   ...
 });
  • 需要从克隆的元素中删除类
    hasDatepicker
    ,因为这是阻止
    datepicker
    附加到特定元素的原因
  • 需要从每个克隆元素中删除
    id
    属性,否则
    。datepicker()
    将假定
    日期选择器
    已添加到此元素

  • 在对克隆的元素调用
    .datepicker()
    之后

JS代码:

 $("#table-data").on('click', 'input.addButton', function () {
     ...
    $clone.find('.dob4').removeAttr('id').removeClass('hasDatepicker');
    $clone.find('.dob4').datepicker({
         format: 'dd-mm-yyyy',
         startDate: '-0m',
         autoclose: true
     });
   ...
 });

您是否添加了类。添加了克隆行的dob?是的,我添加了。但它不起作用。请共享您的代码发布完整的html dom,包括
表数据
在新形成的行上重新初始化
日期选择器
,而不是使用以前初始化的行。是的,我在您共享的小提琴中检查了…它不起作用,你能再次检查一下吗?问题是它起作用了,但它干扰了其他人输入类型如果我克隆了一行,它也在申请其他行。对不起,它仍然不起作用。我只是用这个小故障替换了它并进行了测试。但不起作用。我想你实际上没有得到我说的。如果你克隆了一行[datepicker]应该只用于输入,我们将类名定义为dob4,但它用于另一个…希望您现在理解。。。