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()
$("#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,但它用于另一个…希望您现在理解。。。