现在克隆的字段集没有像我预期的那样保留前一个字段集中的数据。感谢RobG和ATOzTOA的所有帮助。
我现在唯一的问题是日历在克隆的字段集中无效。
我已经浏览了几个线程,其中人们遇到了与我相同的问题,并为在此主题上创建另一个线程而道歉。
日历下拉列表。
<!-- calendar dropdown -->
<script>
$(document).ready(function() {
$("#datepicker").datepicker();
});
</script>
克隆字段集的脚本。
<!-- clone fieldset -->
<script>
var _counter = 0;
function Add() {
_counter++;
var oClone = document.getElementById("template").cloneNode(true);
oClone.id += (_counter + "");
document.getElementById("placeholder").appendChild(oClone);
var inputs = oClone.getElementsByTagName('input');
for (var i=0, iLen=inputs.length;
i<iLen; i++) {
inputs[i].value = '';
}
}
</script>
要克隆的Fieldset。
<div id="placeholder">
<!-- template -->
<div id="template">
<!-- event fieldset -->
<fieldset>
<label class="field-first" required>Event: *<input type="text" name="event" value="" /></label>
<label class="field-first" required>Date: *<input type="text" id="datepicker" name="date" value="" /></label>
<label class="field-first" required>Net Request Amount: *<input type="text" name="request" value="" /></label>
<div class="description"><p>Please type a <strong><em>DETAILED</em></strong> description of the item/event/activity:<br /></p></div>
<textarea name="describe" cols="60" rows="10" required></textarea>
<!-- event fieldset -->
</fieldset>
<!-- template -->
</div>
<!-- placeholder -->
</div>
<!-- buttons -->
<button class="right-button" type="submit" name="submit" value="Submit">Submit</button>
<button class="left-button" "btn" type="button" name="Submit" onclick="Add();">Add New Event</button>
答案 0 :(得分:0)
您必须遍历框架集中的每个元素,并将text()设置为“”。
var div = document.getElementById('template'):
var labels = div.getElementsByTagName('label');
for (var i = 0; i < divs.length; i += 1) {
code = labels[i].innerHTML;
// As there is a input element inside the label, we have to modify the HTML code
codeArray = code.split('<');
codeArray[0] = '';
code = codeArray.join('<');
labels[i] = code;
}
答案 1 :(得分:0)
据推测,您正在为标签添加内容。您可以使用getElementsByTagName
从克隆中获取标签,然后将其innerHTML设置为''(空字符串)以删除任何子节点(或循环子节点并删除它们,但设置innerHTML属性更简单)。在循环标签时,您可以修改可能需要它的任何其他属性。
如果你只想清除输入元素的值,同样的策略只使用getElementsByTagName('input')
并将它们的value
属性设置为``(空字符串)。
请注意,您有三个名为“first_name”的输入元素。当它们中的任何一个看起来都不是名字时,这似乎不是一个好主意。使用代表它们所持有的数据的名称或其用途。似乎没有必要拥有ID为“datepicker”的ID。删除ID,或者如果需要(unlikley),请修改该值,使其对每个克隆的片段都是唯一的。
使用getElementsByTagName
将输入值设置为“”:
var inputs = oClone.getElementsByTagName('input');
for (var i=0, iLen=inputs.length; i<iLen; i++) {
inputs[i].value = '';
}