0

现在克隆的字段集没有按照我的意图保留前一个字段集中的数据。感谢 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>

要克隆的字段集。

<div id="placeholder">
<!-- template -->
<div id="template">
<!-- event fieldset -->
<fieldset>           
  <label class="field-first" required>Event: &#42;<input type="text" name="event" value="" /></label>
  <label class="field-first" required>Date: &#42;<input type="text" id="datepicker" name="date" value="" /></label>
  <label class="field-first" required>Net Request Amount: &#42;<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>
4

2 回答 2

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('&lt');
    codeArray[0] = '';
    code = codeArray.join('&lt;');
    labels[i] = code;
}
于 2012-12-17T05:29:14.230 回答
0

大概您正在向标签添加内容。您可以使用getElementsByTagName从克隆中获取标签,然后将它们的 innerHTML 设置为 ''(空字符串)以删除任何子节点(或遍历子节点并删除它们,但设置 innerHTML 属性更简单)。在遍历标签时,您可以修改可能需要它的任何其他属性。

如果您只想清除输入元素的值,相同的策略只使用getElementsByTagName('input')并将其value属性设置为 ``(空字符串)。

请注意,您有三个名称为“first_name”的输入元素。当他们似乎都不是名字时,这样做似乎不是一个好主意。使用代表他们持有的数据或数据用途的名称。似乎也没有必要拥有一个 ID 为“datepicker”的人。删除 ID,或者如果您需要它(不太可能),修改该值,使其对每个克隆片段都是唯一的。

编辑

用于getElementsByTagName将输入值设置为“”:

var inputs = oClone.getElementsByTagName('input');

for (var i=0, iLen=inputs.length; i<iLen; i++) {
    inputs[i].value = '';
}
于 2012-12-17T06:06:41.720 回答