这篇文章主要介绍了javascript实现动态添加form表单元素的方法,结合实例形式分析了javascript表单元素操作相关函数使用方法与相关注意事项,对javascript感兴趣的朋友可以参考下本篇文章!
之前写过类似的文章(如:javascript实现的动态添加表单元素input,button等),现在看来比较初级,弄一个高级的简单的
情景: 后台要上传游戏截图,截图数量不确定,因此使用动态添加input节点的方法去实现这个效果
主要用到的函数有:
document.getelementbyid();
objnode.parentnode;
objnode.clonenode();
objnode.removeatrribute();
objnode.innerhtml();
objnode.appendchild();
html:
<p class="well well-sm">
<p class="form-group">
<label class="form-label">游戏截图:</label>
<input type="file" name="jietu[]" class="form-input">
<span class="form-tip" onclick="add_jietu()"><font color="#428bca">点击添加游戏截图</font></span>
</p>
<p class="form-group" id="add_jietu">
<label class="form-label">游戏截图:</label>
<input type="file" name="jietu[]" class="form-input">
</p>
</p>
javascript:
<script type="text/javascript">
function add_jietu()
{
var add_jietu = document.getelementbyid('add_jietu');
var nodefather = add_jietu.parentnode;
var node_clone = add_jietu.clonenode();
content = add_jietu.innerhtml;
node_clone.removeattribute('id');
node_clone.innerhtml = content;
nodefather.appendchild(node_clone);
}
</script>
注意:
1. js第6行使用的是克隆节点函数,克隆后的节点里边并没有html,需要第9行的代码去填充内容
2. 使用克隆功能,因为该方法生成的变量类型是节点类型, 才可以用到appendchild()函数里做参数
3. 节点的 nextsibling 和 lastchild 属性得到的变量是 text类型(在chrome的调试窗口中看到的)
相关推荐:
javascript浏览器用户代理检测脚本方法详解
三种javascript模拟实现封装的方式及写法区别分享
详解javascript自执行函数和jquery扩展方法
以上就是javascript实现动态添加form表单元素的方法示例的详细内容。