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

时间:2015-08-27 11:43:19

标签: 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" />

和克隆行的javascript如下:

 $(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

                });

请帮助解决此问题。

感谢。

1 个答案:

答案 0 :(得分:2)

有解决方法,

工作原理:

  • 需要从克隆元素中删除类hasDatepicker,因为这会阻止datepicker附加到特定元素。
  • 需要从每个克隆元素中删除id属性,否则.datepicker()将假定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
     });
   ...
 });

Live Demo @ JSFiddle