關於Html動態新增上傳檔案控制元件inputFile(附件)及清除已選擇的檔案的幾個方法
阿新 • • 發佈:2019-01-10
一、動態新增上傳檔案控制元件
1. 案例一:
- <HTML>
- <HEAD>
- <TITLE>上傳檔案</TITLE>
- <SCRIPTlanguage=javascripttype=text/javascript>
- <!--
- var RES_BT_DELETE = "刪除";
- var isIE = (navigator.userAgent.indexOf("MSIE") != -1);
- var fileIndex = 0;
- function addFile()
- {
- var spanId = "filespan";
- var fileId = "uploadfile" + (fileIndex++);
- addInputFile(spanId, fileId);
- }
- function addInputFile(spanId, fileId)
- {
- var span = document.getElementById(spanId);
- if (span != null)
- {
- var divObj = document.createElement("div"), fileObj, delObj;
- divObj.id = fileId;
- if (isIE)
- {
- fileObj = document.createElement("<inputtype=fileonchange=changeFile(form)>");
- delObj
- }
- else
- {
- fileObj = document.createElement("input");
- fileObj.type = "file";
- fileObj.setAttribute("onchange", "changeFile(form)", 0);
- delObj = document.createElement("input");
- delObj.type = "button";
- delObj.setAttribute("onclick", "delInputFile('" + spanId + "','" + fileId + "')", 0);
- }
- fileObj.name = fileId;
- fileObj.size = "40";
- fileObj.className = "input";
- delObj.value = RES_BT_DELETE;
- divObj.appendChild(fileObj);
- divObj.appendChild(document.createTextNode(" "));
- divObj.appendChild(delObj);
- span.appendChild(divObj);
- }
- }
- function delInputFile(spanId, fileId)
- {
- var span = document.getElementById(spanId);
- var divObj = document.getElementById(fileId);
- if (span != null && divObj != null)
- {
- span.removeChild(divObj);
- }
- }
- //-->
- </SCRIPT>
- <METAcontent="MSHTML 6.00.2800.1528"name=GENERATOR>
- </HEAD>
- <BODYclass=pagebackground>
- <FORMid=formaction=XXXmethod=postencType=multipart/form-data>
- <TABLEclass=dialog1height=20cellSpacing=1cellPadding=8width="90%"align=center>
- <TBODY>
- <TR>
- <TD noWrap>通過檔案上傳: </TD>
- <TDid=filespan noWrap>
- <INPUTclass=inputtype=filesize=40name=file>
- <INPUTid=btnAddonclick=addFile() type=buttonvalue=新增>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
- </FORM>
- </BODY>
- </HTML>
2. 案例二:
- <html>
- <head>
- <metahttp-equiv="Content-Type"content="text/html; charset=gb2312">
- <title>新建網頁 1</title>
- </head>
- <body>
- <scriptlanguage=JavaScript>
- function fAddAttach()
- {
- var gAttchHTML='<div class="qrle text2">附件:</div><div class="le"><input type="file" name="attachfile[]" class="bot3" ></div><div class="le"><input type="button" name="Submit" value=" 刪除 " class="bot2" id="btnDeleteReadAttach" /></div><span></span>';
- var Attach=document.getElementById("dvReadAttach");
- var spnList=Attach.getElementsByTagName("SPAN");
- var spn=document.createElement("DIV");
- spn.className="qrc4";
- spn.innerHTML=gAttchHTML;
- spn.childNodes[1].childNodes[0].name="attachfile[]" + spnList.length;
- Attach.appendChild(spn);
- fGetObjInputById(spn,"btnDeleteReadAttach").onclick=function(){fDeleteAttach(this);};
- document.getElementById("aAddAttach").innerHTML="繼續新增附件";
- Attach.style.display="";
- if(spnList.length>1)
- {
- spn.childNodes[0].innerHTML=" ";
- }
- }
- function fGetObjInputById(obj,id)
- {
- var inputList=obj.getElementsByTagName("INPUT");
- for(var i=0;i<inputList.length;i++)
- {
- if(inputList[i].id==id)
- {
- return inputList[i];
- }
- }
- return null;
- }
- function fDeleteAttach(obj)
- {
- try
- {
- obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);
- var Attach=$("dvReadAttach");
- var spnList=Attach.getElementsByTagName("SPAN");
- if(spnList.length==0)
- {
- document.getElementById("aAddAttach").innerHTML="新增附件";
- Attach.style.display="none";
- }
- else
- {
- document.getElementById("aAddAttach").innerHTML="繼續新增附件";
- }
- }
- catch(exp)
- {
- //fDebug("fDeleteAttach",exp.description);
- }
- }
- </script>
- <BODYBGCOLOR=WHITE>
- <ahref="javascript:fAddAttach();"id="aAddAttach">新增附件</a>
- <divid="dvReadAttach"style="display:none">
- </BODY>
- </body>
- </html>
二、清空inputFile的內容
1. 方法一:
- <FORMname=form1>
- <inputtype="file"name=f>
- <inputtype=buttonvalue=resetonclick="f.select();document.execCommand('delete')">
- </FORM>
2. 方法二:
- <FORMname=form1>
- <inputtype="file"name=f>
- <inputtype=buttonvalue=resetonclick="form1.f.outerHTML='<input type=/'file/' name=/'f/'>'">
- </FORM>