以下是我的克隆代码:
function addCloneRow(obj) {
if(obj) {
var tBody = obj.parentNode.parentNode.parentNode;
var trTable = tBody.getElementsByTagName("tr")[tBody.getElementsByTagName("tr").length-1];
var trClone = trTable.cloneNode(true);
if(trClone) {
var txt = trClone.getElementsByTagName("input");
var srno = trClone.getElementsByTagName("label");
var dd = trClone.getElementsByTagName("select");
for(var i=0; i<dd.length; i++) {
dd[i].options[0].selected=true;
var nm = dd[i].name;
var nNm = nm.substring((nm.indexOf("_")+1),nm.indexOf("["));
dd[i].name = nNm+"[]";
}
for(var j=0; j<txt.length; j++) {
var nm = txt[j].name;
var nNm = nm.substring((nm.indexOf("_")+1),nm.indexOf("["));
txt[j].name = nNm+"[]";
if(txt[j].type == "hidden"){
txt[j].value = "0";
}else if(txt[j].type == "text") {
txt[j].value = "";
}else if(txt[j].type == "checkbox") {
txt[j].checked = false;
}
}
tBody.insertBefore(trClone, tBody.getElementsByTagName("tr")[tBody.getElementsByTagName("tr").length]);
}
}
}
以下是我的HTML代码:
<table id="step_details" style=" padding: 0px; margin: 5px; border-color: #fff;" align="center" frame="box" cellspacing="15">
<tr>
<th width="45%">Step details</th>
<th>Expected Results</th>
<th width="25">Execution</th>
<th><img src="gui/themes/default/images/ico_add.gif" onclick="addCloneRow(this);"/></th>
</tr>
{foreach from=$gui->viewSteps item=step_info }
<tr>
<input type="hidden" name="existing_id[]" value="{$step_info->id}">
<td><textArea id="step_details" name="step_details[]">{$step_info->actions|strip_tags|trim}</textArea></td>
<td><textArea id="expected_results" name="expected_results[]">{$step_info->expected_results|strip_tags|trim}</textArea></td>
<td style="vertical-align: top;">
<select onchange="content_modified = true" name="etype[]">
<option {if $step_info->execution_type eq 1 }selected="selected" {/if} value="1" label="Manual">Manual</option>
<option {if $step_info->execution_type eq 2 } selected="selected" {/if} value="2" label="Automated">Automated</option>
</select>
</td>
<td style="vertical-align: top;"><img src="gui/themes/default/images/ico_del.gif" onclick="removeCloneRow(this);"/></td>
</tr>
{/foreach}
{if $smarty.post.doAction neq "edit"}
<tr>
<td><textArea name="step_details[]"></textArea></td>
<td><textArea name="expected_results[]"></textArea></td>
<td style="vertical-align: top;">
<select onchange="content_modified = true" name="etype[]">
<option selected="selected" value="1" label="Manual">Manual</option>
<option value="2" label="Automated">Automated</option>
</select>
</td>
<td style="vertical-align: top;"><img src="gui/themes/default/images/ico_del.gif" onclick="removeCloneRow(this);"/></td>
</tr>
{/if}
</table>
克隆工作正常但问题是如果我正在编辑页面然后用textarea值克隆它而不是我想在textarea中使用空值。如何在textarea中克隆后动态添加空值。
由于
答案 0 :(得分:3)
在以下行之后:
var dd = trClone.getElementsByTagName("select");
这些行:
var textarea = trClone.getElementsByTagName("textarea");
for(var i=0; i<textarea.length; i++) {
textarea[i].value = '';
}
希望这有帮助。