动态创建"多文件上传"方法

本文介绍了两种使用JavaScript实现批量添加文件输入的方法。方法一通过创建元素并添加到指定div中实现;方法二则利用表格插入行的方式实现。这两种方法均可限制最大添加数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接入正题:

方法一:

 <script language="javascript">
	var i=1;
	function addFile(){
		if(i>=5){
			alert('最多上传5张图片');
			return;
		}
		i++;
		var p = document.createElement('p');
		var t1 = document.createElement('input');
		t1.type = 'file';  //t1.setAttribute("type","file"); 
		t1.name = 'myfile';  //t1.setAttribute("name","myfile");
		var t2 = document.createElement('input');
		t2.type = 'button';
		t2.value = 'Delete';
		t2.onclick = function(){
			i--;//此处i必须-1
			while(this.parentNode.firstChild){
			this.parentNode.removeChild(this.parentNode.firstChild);
			}		
		}
		
		p.appendChild(t1);
		p.appendChild(t2);
		document.getElementById('aFile').appendChild(p);
		}
	</script>

 注:aFile是<div id='aFile'>

 代码较多,但是比较容易理解

 

 

方法二:

  <script language="javascript">
     function insertElement(){
          var otablefile = document.getElementById("filetable");
          if(otablefile.rows.length<5){
             var otr = otablefile.insertRow(0);
             otr.insertCell(0).innerHTML = "<input type=file name=file["+otablefile.rows.length+"] size=60><input type=button value='删除' onclick='deltr(this);' style='height:20px;'>";    
         }
       }
    function deltr(obj)
     {
        obj.parentElement.parentElement.removeNode(true);
    } 
  </script>

注:*filtable为<table id='filetable'>

 代码较方法一少了很多。

平时做项目这些东西用的少,容易忘,就记下来,供大家和自己参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值