我有下面的代码,它动态地向表单添加和删除文本框。
$(document).ready(function(){
var str = '<div id="my{0}Div"><textarea id="corrective{0}" name="corrective{0}" rows="12" cols="50" class="field textarea small"></textarea><span class="link" id="delete{0}Row">Remove This</span></div>';
<cfif thisInstance.recommendationCorrectiveAction.RecordCount>
var i = <cfoutput>#thisInstance.recommendationCorrectiveAction.RecordCount#</cfoutput>+1;
<cfelse>
var i = 2;
</cfif>
function addRow() {
updateStr = jQuery.format(str, i);
$(updateStr).appendTo("#MyRecommends");
// add the click handler for the delete link
$('#delete'+i+'Row').click(deleteRow);
// reset the corrective action count
updateCorrectiveActionCount = parseInt(objForm.correctiveActionCount.getValue())+1;
objForm.correctiveActionCount.setValue(updateCorrectiveActionCount);
i++;
}
function deleteRow() {
var parentID = $(this).parent('div').attr('id');
$('#MyRecommends #'+parentID).remove();
// reset the corrective action count
updateCorrectiveActionCount = parseInt(objForm.correctiveActionCount.getValue())-1;
objForm.correctiveActionCount.setValue(updateCorrectiveActionCount);
i--;
}
$("#add").click(addRow);
});
如果我连续添加和删除文本框,这很好。但是,如果我添加两个文本框说 tb2 和 tb3,然后按 tb2 的“删除此”链接;尽管上面 i 的值减少到 2,但我收到一条错误消息,提示“在类型为 Coldfusion.filter.FormScope 的 Java 对象中未定义元素校正 2。<br>错误发生在第 351 行。”
我需要一个解决方案,每次添加或删除一个文本框时,整个系列都会重新编号,或者任何更好的解决方案。