【发布时间】:2013-12-29 17:50:29
【问题描述】:
我仍在尝试创建用户可以即时添加的空白字段。我正在尝试克隆以下隐藏模板,但无法添加。
我的 HTML
<div class="_100">
<fieldset id="FieldBlank">
<div id="readroot" class="hidden">
<div class="_100">
<div class="_50"> QA Sample ID:<input type="text" id="QASampleID" name="QASampleID"></div>
<div class="_50" data-role="controlgroup" data-mini="true" data-type="horizontal">
<label>Collection Method</label><br />
<input type="radio" id="radGrab1" value="Grab" name="Collection1" />
<label for="radGrab1">Grab</label>
<input type="radio" id="radEWI1" value="EWI" name="Collection1" />
<label for="radEWI1">EWI</label></div>
</div>
<div class="_100">
<div class="_40">
<label class="analysis-label" for="analysis">Analyte:</label>
<select class="analysis" id="analysis" name="analysis" data-iconpos="left" data-icon="grid">
<option>Select</option>
<option value = "TN">TN</option>
<option value = "TP,NO2+3">TP,NO2+3</option>
</select></div>
<div class="_30">
<label class="preserve-label" for="preserve">Preserved</label>
<select class="select_preserve" id="preserve" name="preserve" data-iconpos="left" data-icon="grid">
<option>Select</option>
<option value = "HNO3">HNO₃</option>
<option value = "H2SO4">H₂SO₄</option>
</select></div>
<div class="_30">
<label class="cool-label" for="cool">Cooled</label>
<select class="select_cool" id="cool" name="cool" data-iconpos="left" data-icon="grid">
<option>Select</option>
<option value = "Ice">Ice</option>
<option value = "Frozen">Frozen</option>
<option value = "None">None</option>
</select></div>
</div>
</div>
</fieldset>
</div>
<button type="button" data-theme="b" data-icon="plus" id="moreFields" onclick="moreFields()">ADD FIELD BLANK</button>
<hr /><div id="writeroot"> </div>
我的 javascript
var counter = 0;
function moreFields() {
counter++;
var newFields = document.getElementById('readroot').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';
var newField = newFields.childNodes;
for (var i = 0; i < newField.length; i++) {
var theName = newField[i].name
if (theName)
newField[i].name = theName + counter;
}
var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newFields,insertHere);
}
我就是无法让它工作!是因为这个脚本不是jquery吗?似乎不是因为它被隐藏了,因为当我取消隐藏它时,按钮仍然无法添加克隆?我现在正在拔头发。我需要你帮忙!
【问题讨论】:
-
你用 jQuery 标记了这个问题,但我没有看到。
-
如果你真的在使用 jQuery,你可以只使用 api.jquery.com/clone 但确保你指定它是一个深度克隆。只是一个注释 - 不要使用 _ 来开始一个类名,一些浏览器不喜欢这样。
-
没有id为“writeroot”的元素,只有这个可以工作
-
大部分表单都是jquery。我有使用 .clone 的部分,但这会捕获已完成的字段,我需要空的 firlds ......深度克隆会这样做吗?如果有怎么办?
-
@AmitChotaliya 我有 div id="writeroot" 我只是忘了把它复制过来。
标签: javascript jquery html forms clone