正如@Bluetoft 所说,答案是事件委托。
它不适合你的原因是因为你的日期选择器被绑定到元素脚本运行时存在的(更不用说,生日字段的 id 与脚本绑定的 #datepicker 不同)。
当您动态引入新表单时,日期选择器不会绑定到新元素。
因此,一种方法是,根据这个答案 https://stackoverflow.com/a/7313723/870729,就是像这样构造你的脚本:
$(function() {
$("body").delegate("#datepicker", "focusin", function(){
$(this).datepicker();
});
});
此外,您的表单“生日”输入的 id 为#fi_bday,这是它未被绑定的另一个原因。我建议您在希望日期选择器具有“datepicker”类的位置分配任何输入,然后更改脚本以将日期选择器功能绑定到'.datepicker'
要素:
$(function() {
$("body").delegate(".datepicker", "focusin", function(){
$(this).datepicker();
});
});
Finally,如果你不想使用上面更好的通用类方法,你可以在下面的选择器中使用两个选择器。下面的方法也以将日期选择器绑定到模式窗口元素的方式进行委托:
$(function() {
$("body").delegate("#datepicker, #fi_bday", "focusin", function(){
$(this).datepicker();
});
});