javascript动态添加form表单元素

简介: 2014年11月7日 17:10:40 之前写过几篇类似的文章,现在看来比较初级,弄一个高级的简单的 情景: 后台要上传游戏截图,截图数量不确定,因此使用动态添加input节点的方法去实现这个效果 主要用到的函数有:  document.

2014年11月7日 17:10:40

之前写过几篇类似的文章,现在看来比较初级,弄一个高级的简单的

情景: 后台要上传游戏截图,截图数量不确定,因此使用动态添加input节点的方法去实现这个效果

主要用到的函数有: 

document.getElementById();

objNode.parentNode;

objNode.cloneNode();

objNode.removeAtrribute();

objNode.innerHTML();

objNode.appendChild();

html:

 1 <div class="well well-sm">
 2     <div class="form-group">
 3         <label  class="form-label">游戏截图:</label>
 4         <input type="file"  name="jietu[]" class="form-input">
 5         <span class="form-tip" onclick="add_jietu()"><font color="#428bca">点击添加游戏截图</font></span>
 6     </div>
 7     <div class="form-group" id="add_jietu">
 8         <label  class="form-label">游戏截图:</label>
 9         <input type="file"  name="jietu[]" class="form-input">
10     </div>
11 </div>

javascript:

 1 <script type="text/javascript">
 2 function add_jietu()
 3 {
 4     var add_jietu = document.getElementById('add_jietu');
 5     var nodeFather = add_jietu.parentNode;
 6     var node_clone = add_jietu.cloneNode();
 7     content = add_jietu.innerHTML;
 8     node_clone.removeAttribute('id');
 9     node_clone.innerHTML = content;
10     nodeFather.appendChild(node_clone);
11 }
12 </script>

注意:

1. js第6行使用的是"克隆节点"函数,克隆后的节点里边并没有html,需要第9行的代码去填充内容

2. 使用克隆功能,因为该方法生成的变量类型是"节点类型", 才可以用到appendChild()函数里做参数

3. 节点的 nextSibling 和 lastChild 属性得到的变量是 Text类型(在chrome的调试窗口中看到的)

 

Finger PHP 框架

目录
相关文章
|
25天前
|
JavaScript
js【图解】滚动条的位置(文档与屏幕间的距离),鼠标事件距离(位置),元素距离(位置)
js【图解】滚动条的位置(文档与屏幕间的距离),鼠标事件距离(位置),元素距离(位置)
20 7
|
27天前
|
前端开发 JavaScript
使用JavaScript动态更改元素的CSS属性
【6月更文挑战第29天】使用JavaScript动态更改元素的CSS属性
31 3
|
11天前
|
存储 资源调度 前端开发
JavaScript 使用axios库发送 post请求给后端, 给定base64格式的字符串数据和一些其他参数, 使用表单方式提交, 并使用onUploadProgress显示进度
使用 Axios 发送包含 Base64 数据和其他参数的 POST 请求时,可以通过 `onUploadProgress` 监听上传进度。由于整个请求体被视为一个单元,所以进度可能不够精确,但可以模拟进度反馈。前端示例代码展示如何创建一个包含 Base64 图片数据和额外参数的 `FormData` 对象,并在上传时更新进度条。后端使用如 Express 和 Multer 可处理 Base64 数据。注意,实际进度可能不如文件上传精确,显示简单加载状态可能更合适。
|
22天前
|
JavaScript
JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
|
23天前
|
JavaScript
js 数组移除指定元素【函数封装】(含对象数组移除指定元素)
js 数组移除指定元素【函数封装】(含对象数组移除指定元素)
15 0
|
24天前
|
前端开发 JavaScript
js 进入浏览器全屏(F11效果)、退出全屏、指定元素全屏、判断当前是否全屏、监听浏览器全屏事件、定义全屏时的css样式(全屏伪类)
js 进入浏览器全屏(F11效果)、退出全屏、指定元素全屏、判断当前是否全屏、监听浏览器全屏事件、定义全屏时的css样式(全屏伪类)
22 0
|
28天前
|
前端开发 JavaScript 容器
程序技术好文:纯原生javascript下拉框表单美化实例教程
程序技术好文:纯原生javascript下拉框表单美化实例教程
15 0
|
1月前
|
算法 JavaScript 安全
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
13 0
|
前端开发
JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)-2
JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)-
108 0
JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)-2