<html>
<head>
<title>动态添加表单元素
</title>
</head>
<script language="javascript">function AddElement(mytype){ var TemO=document.getElementById("add"); var newInput = document.createElement("input"); newInput.type=mytype; newInput.id="input1"; TemO.appendChild(newInput); var newline= document.createElement("br"); TemO.appendChild(newline); } function delElement(mytype){ var TemO=document.getElementById("add"); var newInput = document.getElementById("input1"); TemO.removeChild(newInput); var newline= document.getElementById("br"); TemO.removeChild(newline); } </script> <body> <input name="" type="button" value="新建文本框"> <input name="" type="button" value="新建复选框"> <input name="" type="button" value="新建单选框"> <input name="" type="button" value="新建文件域"> <input name="" type="button" value="新建密码框"> <input name="" type="button" value="新建提交按钮"> <input name="" type="button" value="新建恢复按钮"> <input name="" type="button" value="删除恢复按钮"> <br /> <form name="frm" method="get" action=""> <div id="add"> <input name="textfield" type="text"> <br /> </div> </form> </body>
</html>
使用js动态增加删除表单元素
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- Chris-Hsu 2008-11-14 18:21关注
[quote] </p> <pre><code>function AddElement(mytype){ var TemO=document.getElementById("add"); var newInput = document.createElement("input"); newInput.type=mytype; newInput.id="input1"; </code></pre> <p>[color=red]//在这里作者作用了input1作为Id,这样一来每添加一个元素,都是相同的Id,这样不太好,删除方法中查找元素时采用getElementById("input1"),不知道是要删除哪个元素[/color]</p> <pre><code> TemO.appendChild(newInput); var newline= document.createElement("br"); </code></pre> <p>[color=red]//在这里作者作创建了一个<br/>元素,但这里只是单纯创建它,是不符合上下文逻辑的,因为下面删除方法中查找<br/>元素时,是采用getElementById()的形式,应该为它加上Id[/color]</p> <pre><code> TemO.appendChild(newline); } function delElement(mytype){ var TemO=document.getElementById("add"); var newInput = document.getElementById("input1"); TemO.removeChild(newInput); var newline= document.getElementById("br"); TemO.removeChild(newline); } </script> [/quote] </code></pre> <p>将以上代码作如下修改后,你再试试看!!!</p> <p>[quote]<script language="javascript"><br><br> var elementCount = 0;<br><br> function AddElement(mytype){<br><br> var TemO=document.getElementById("add");<br><br> var newInput = document.createElement("input"); </p> <pre><code> elementCount = elementCount + 1; newInput.type=mytype; newInput.id="input"+(elementCount); TemO.appendChild(newInput); var newline= document.createElement("br"); newline.id = "br"+(elementCount); TemO.appendChild(newline); } function delElement(mytype){ var TemO=document.getElementById("add"); if (elementCount>0){ var newInput = document.getElementById("input"+elementCount); TemO.removeChild(newInput); var newline= document.getElementById("br"+(elementCount)); elementCount = elementCount - 1; TemO.removeChild(newline); } } </script> [/quote] </code></pre> <p>!!!!(注:是即时修改,所以不算是最优的解决方法,如果你想要,可以给我留言,我抽时间给你写一个。)</p>
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器