关于js动态增加删除textarea的问题,增加可以,删除不行。用input控制可以,用herf控制不行!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于js动态增加删除textarea的问题,增加可以,删除不行。用input控制可以,用herf控制不行!相关的知识,希望对你有一定的参考价值。

代码如下:<html>
<head>
<title>动态添加html元素</title>
<script type="text/javascript">
<!--
var textNumber = 1;
function addCheckDetail(form,afterElement)
textNumber++;
// 创建文本标签
var label1 = document.createElement("label");
// 创建文本框
var textField = document.createElement("textarea");
textField.setAttribute("name","text"+textNumber);
textField.setAttribute("cols",80);
textField.setAttribute("rows",3);
textField.setAttribute("id","text"+textNumber);
// 增加标签文本注释
label1.appendChild(document.createTextNode("步骤"+textNumber+":"));
// 把textField放入标签中
label1.appendChild(textField);
// 把所有的这些增加到form中
afterElement.parentNode.insertBefore(label1,afterElement);

function removeCheckDetail(form,afterElement)
// 假如有文本框个数超过一个
if (textNumber > 1)
// 删除最后一个添加的文本框
form.removeChild(document.getElementById("text"+textNumber).parentNode);
textNumber--;


//-->
</script>
<style type="text/css">
<!--
label
display:block;
margin:.25em 0em;

-->
</style>
</head>
<body>
<form id="myForm" method="get" action="./" />
<table>
<label>步骤1:<textarea name="text" id="text" cols="80" rows="3"></textarea></label>

<p>
<a href="#" onclick="addCheckDetail(this.form,this.parentNode)" > 添加一个步骤</a>
<a href="#"onclick="removeCheckDetail(this.form)" > 删除最后一个步骤 </a>
</p>
<p><input type="Submit" value="保存" /></p>
</table>

</form>
</body>
</html>

--------------------------------
如上,当删除时,不能删除。
但如果将<a href="#"onclick="removeCheckDetail(this.form)" > 删除最后一个步骤 </a>替换为<input type="button" value="删除最后一个步骤" onclick="removeCheckDetail(this.form)" />时就没有问题。

请教:为什么?
如果我用href来控制,应该怎么修改使得删除可以正常使用?

A标签没有form属性,所以this.form会失败,但INPUT标签有form属性,可以返回所在表单.
只需要改一下调用即可,
<a href="#" onclick="addCheckDetail(document.getElementById('myForm'),this.parentNode)" >
另一处this.form按同样的方法修改.
参考技术A
<table>
<label>步骤1:<textarea name="text" id="text" cols="80" rows="3"></textarea></label>

<p>
<a href="#" onclick="addCheckDetail(this.form,this.parentNode)" > 添加一个步骤</a>
<a href="#"onclick="removeCheckDetail(this.form)" > 删除最后一个步骤 </a>
</p>
<p><input type="Submit" value="保存" /></p>
</table>
改成如下就OK了!

<div id="tab1">
<label>步骤1:<textarea name="text" id="text" cols="80" rows="3"></textarea></label>

<p>
<a href="#" onclick="addCheckDetail(this.form,this.parentNode)" >添加一个步骤</a>
<a href="#" onclick="removeCheckDetail(tab1)" > 删除最后一个步骤 </a>
</p>

</div>
<p><input type="Submit" value="保存" /></p>

JS动态增加删除表格的问题 大家救救我吧

我JS白痴,今天又遇到这么个难题,请大家能帮助我一下,能帮我解决问题,我愿意把剩下的二百财富值也赠送(就这么多了,实在没办法了),先谢谢大家了

1.点击增加一所学校,可以增加一个学校模块,也就是红框所标出的整个表格会增加到下面,并且出现删除一所学校按钮,
点击删除一所学校,可以删除一整个表格
2.在每个学校表格中,点击增加,可以增加一行并且出现删除按钮,如蓝色框所示,点击删除可以删除一行
3.每个学校增加的行数要用隐藏域表单记录下来,以方便添加至数据库
代码太长了,好像贴不完

参考技术A 用js添加页面元素分两步,一是找到父DOM元素,二用js创建一个新的DOM结构添加进去。追问

我要会我就不把图画出来提问了……

追答

用getElementById查找父元素,用createElementByTag创建,用appendChild添加,再具体我也不清楚了。创建嵌套的就反复使用create和append就行了,再具体得看你那个表格的结构了,你可以查看html源代码看看里面的结构

来自:求助得到的回答
参考技术A 用JQUERY很好解决,几步就解决了,私信我,写给你~本回答被提问者采纳 参考技术B 把你写的一些代码贴出来,方便被人帮你,哪怕是写好的html、css代码也行啊追问

代码太长了,贴不完怎么办?

参考技术C 哥们这个问题怎么解决的啊

以上是关于关于js动态增加删除textarea的问题,增加可以,删除不行。用input控制可以,用herf控制不行!的主要内容,如果未能解决你的问题,请参考以下文章

用JS对HTML table动态增加行删除行问题?

原生js 实现动态表格(增加删除)

在 Blazor 中增加 TextArea

js_table动态增加和删除

jQuery实现表格行的动态增加与删除(改进版)

JS动态增加删除UL节点LI及相关内容示例