每次选择Google地图中的某个地点时,我都会尝试创建新的日期选择工具。
selectedplacessize = selectedplaces.length;
inputcal = document.createElement("input");
inputcal.type = "text";
inputcal.name = "datepicker" + selectedplacessize;
inputcal.setAttribute("id","datepicker" + selectedplacessize);
inputcal.className = "datepick hasDatepicker";
tomakedate.appendChild(inputcal);
这是在html中添加新的日期选择器的事件。
<td id="fordate"> <input type="text" id="inputlatlong" name="inputlatlong" hidden="">
<input type="text" id="datepicker" name="datepicker" class="datepick hasDatepicker">
<input type="text" name="datepicker1" id="datepicker1" class="datepick hasDatepicker"></td>
在浏览器中,带有新添加的datepicker的html看起来像这样。
{{1}}带有id #datepicker的
输入元素将在页面加载时出现。每次在谷歌地图上选择一个地点时,将添加另一个类别为“datepick”的输入类型。 浏览器的inspect元素中没有错误或警告。
编辑:我已尝试更换该行:
inputcal.className =“datepick hasDatepicker”;与
inputcal.className =“datepick”;
它还没有用。
答案 0 :(得分:1)
在这些具有类$('.datepick').datepicker();
的元素存在之前,您正在执行datepick
。在这行代码之后添加的新元素将不转换为datepickers,因为它仅指向满足当时选择器的元素。
我喜欢用于这类事情的类比就是我所说的百货商店类比:
假设你在百货公司工作。你的经理说:“给玩具部门的所有东西贴上红色标签” - 所以你这样做了。第二天,100个新玩具进来了。你的经理立即向你询问“为什么新玩具上没有红色贴纸?”
这与你在这里问的类似。您正在将当前.datepick
的所有元素转换为datepickers,但是在创建新元素时,您不会转换它们。
您可以通过执行以下操作来修改代码,使元素成为datepickers:
selectedplacessize = selectedplaces.length;
inputcal = document.createElement("input");
inputcal.type = "text";
inputcal.name = "datepicker" + selectedplacessize;
inputcal.setAttribute("id","datepicker" + selectedplacessize);
inputcal.className = "datepick hasDatepicker";
tomakedate.appendChild(inputcal);
$inputcal = $(inputcal);
$inputcal.datepicker({dateFormat : "yyyy-MM-dd"});