js实现动态添加上传文件页面


Posted in Javascript onOctober 22, 2018

发邮件是需要添加一些文件,每添加一个文件,页面上可以显示一个表单文件上传选项。

js实现动态添加上传文件页面

此功能为:初始时刻只有一个添加按钮,当点击添加文件时,会增加一个选择文件和删除区域,同时显示上传按钮,当点击删除,此行选择文件行消失,当所有选择文件项都消失时,上传按钮将被隐藏起来。下面是实例代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 
 <title>动态添加文件上传列表</title>
 <script type="text/javascript">
  var num=0;
  function addFile(event){
  //创建一个div标签,用以包含一个input标签和删除按钮
  var innerdiv = document.createElement("div");
  
  //创建一个input标签
  var inputNode = document.createElement("input");
  inputNode.name = "fileName";
  inputNode.type="file";
  
  //创建一个删除按钮
  var delNode = document.createElement("input");
  delNode.name = "del";
  delNode.type = "button";
  delNode.value="删除";
  
  var submit = document.getElementById("submit");
  
  //删除当前删除按钮所在的标签,为此按钮点击事件创建一个处理函数
  delNode.onclick = function d(){
  this.parentNode.parentNode.removeChild(this.parentNode); //删除此div区域
  var fileNodes = document.getElementsByName("fileName");
  //当没有上传文件时,隐藏submit按钮
  if(fileNodes.length==0){
  submit.style.display="none";
  }
  };
  
  innerdiv.appendChild(inputNode);
  innerdiv.appendChild(delNode);
  
  var div = document.getElementById("file");
  div.appendChild(innerdiv);
  
  submit.style.display="block";
  
  }
 </script>
 
 </head>
 
 <body>
 <form id="upload" action="${pageContext.request.contextPath }/servlet/FileUploadServlet" enctype="multipart/form-data" method="post">
  上传文件:<input type="button" value="添加文件" onclick="addFile(this.parentNode)"/> <br />
  <table>
  <div id="file">
  
  </div>
  </table>
  <input id="submit" type="submit" value="上传" style="display: none"/>
 </form>
 </body>
</html>

此实例代码中,addFile将动态增加一个div区域,div区域包含一个file input标签和删除按钮。

动态创建一个input标签示例:

//创建一个div标签,用以包含一个input标签和删除按钮
 var innerdiv = document.createElement("div");
  
//创建一个input标签
 var inputNode = document.createElement("input");
 inputNode.name = "fileName";
 inputNode.type="file";
 innerdiv.appendChild(inputNode);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Prototype Function对象 学习
Jul 12 Javascript
编写Js代码要注意的几条规则
Sep 10 Javascript
addEventListener 的用法示例介绍
May 07 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
May 13 Javascript
JavaScript基础教程之alert弹出提示框实例
Oct 16 Javascript
AngularJS中取消对HTML片段转义的方法例子
Jan 04 Javascript
Javascript优化技巧之短路表达式详细介绍
Mar 27 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
Jan 19 Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 Javascript
vue双向绑定简要分析
Mar 23 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
Feb 28 Javascript
Javascript 实现 Excel 导入生成图表功能
Oct 22 #Javascript
js实现动态增加文件域表单功能
Oct 22 #Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
Oct 22 #Javascript
js实现input密码框显示/隐藏功能
Sep 10 #Javascript
Vue slot用法(小结)
Oct 22 #Javascript
TypeScript基础入门教程之三重斜线指令详解
Oct 22 #Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
Oct 22 #Javascript
You might like
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
python 简单的多线程链接实现代码
2016/08/28 Python
python微信公众号开发简单流程
2018/03/23 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
flask应用部署到服务器的方法
2019/07/12 Python
python统计文章中单词出现次数实例
2020/02/27 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
python 实现图片裁剪小工具
2021/02/02 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
公司年会抽奖活动主持词
2014/03/31 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
新党员入党决心书
2015/09/22 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle