Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 更改元素ID时,日期选择器将丢失绑定_Jquery_Forms_Jquery Ui_Datepicker_Jquery Ui Datepicker - Fatal编程技术网

Jquery 更改元素ID时,日期选择器将丢失绑定

Jquery 更改元素ID时,日期选择器将丢失绑定,jquery,forms,jquery-ui,datepicker,jquery-ui-datepicker,Jquery,Forms,Jquery Ui,Datepicker,Jquery Ui Datepicker,我在表单集中使用jQuery日期选择器,我们可以在其中添加和删除表单。在添加新表单时,我在表单原型中添加了一个设置字段函数,该函数将日期选择器附加到新字段,效果很好 但是,在删除表单时,我会从DOM中完全删除所选表单,并更新其他表单的ID,以便它们连续编号(因此后端可以期望给定数量的连续编号表单,而不是维护“已删除”列表) 我遇到的问题是,当我删除一个表单而其余表单的ID发生更改时,日期选择器的绑定保留在下一个表单上,因此在一个表单中更改日期将更改下一个表单中字段的值(最后一个表单给出错误此日期

我在表单集中使用jQuery日期选择器,我们可以在其中添加和删除表单。在添加新表单时,我在
表单
原型中添加了一个
设置字段
函数,该函数将日期选择器附加到新字段,效果很好

但是,在删除表单时,我会从DOM中完全删除所选表单,并更新其他表单的ID,以便它们连续编号(因此后端可以期望给定数量的连续编号表单,而不是维护“已删除”列表)

我遇到的问题是,当我删除一个表单而其余表单的ID发生更改时,日期选择器的绑定保留在下一个表单上,因此在一个表单中更改日期将更改下一个表单中字段的值(最后一个表单给出错误
此日期选择器缺少实例数据
)。在我更改ID后,我尝试调用表单的
set\u fields
(因此在我更改ID的所有字段上再次调用
datepicker()
),但绑定仍然没有更改。我还尝试手动循环使用附加日期选择器的所有元素,并再次对它们调用
datepicker()
,但仍然没有任何变化


如果您需要查看代码的任何特定部分,请告诉我。

我最终找到了解决方案。问题是,当字段添加了日期选择器时,该字段将被赋予一个
hasDatepicker
类。如果随后尝试重新初始化该字段上的日期选择器,则如果该字段已具有
hasDatepicker
类,则该字段将忽略它。因此,我只是从我想要重新初始化的每个元素中删除了这个类,然后调用了我的
set\u fields
函数,它成功了

如果更改元素的id,则必须删除“hasDatepicker”类,然后使用选择器重新初始化datepicker

示例

$(选择器).removeClass('hasDatepicker');
$(选择器).日期选择器({
变化月:对,
变化年:对
});

很难说没有看到您的代码,但是将id重新分配给DOM元素听起来不是正确的方法。也许您想切换类?