1. 程式人生 > >關於Html動態新增上傳檔案控制元件inputFile(附件)及清除已選擇的檔案的幾個方法

關於Html動態新增上傳檔案控制元件inputFile(附件)及清除已選擇的檔案的幾個方法

一、動態新增上傳檔案控制元件

  1.   案例一:

  1. <HTML>
  2. <HEAD>
  3. <TITLE>上傳檔案</TITLE>
  4. <SCRIPTlanguage=javascripttype=text/javascript>
  5.         <!--
  6.             var RES_BT_DELETE = "刪除";
  7.             var isIE = (navigator.userAgent.indexOf("MSIE") != -1);
  8.             var fileIndex = 0;
  9.             function addFile() 
  10.             {
  11.                 var spanId = "filespan";
  12.                 var fileId = "uploadfile" + (fileIndex++);
  13.                 addInputFile(spanId, fileId);
  14.             }
  15.             function addInputFile(spanId, fileId) 
  16.             {
  17.                 var span = document.getElementById(spanId);
  18.                 if (span != null) 
  19.                 {
  20.                     var divObj = document.createElement("div"), fileObj, delObj;
  21. divObj.id = fileId;
  22.                     if (isIE) 
  23.                     {
  24. fileObj = document.createElement("<inputtype=fileonchange=changeFile(form)>");
  25. delObj
     = document.createElement("<inputtype=buttononclick=delInputFile('" + spanId + "','" + fileId + "')>");
  26.                     } 
  27.                     else 
  28.                     {
  29. fileObj = document.createElement("input");
  30. fileObj.type = "file";
  31.                         fileObj.setAttribute("onchange", "changeFile(form)", 0);
  32. delObj = document.createElement("input");
  33. delObj.type = "button";
  34.                         delObj.setAttribute("onclick", "delInputFile('" + spanId + "','" + fileId + "')", 0);
  35.                     }
  36. fileObj.name = fileId;
  37. fileObj.size = "40";
  38. fileObj.className = "input";
  39. delObj.value = RES_BT_DELETE;
  40.                     divObj.appendChild(fileObj);
  41.                     divObj.appendChild(document.createTextNode(" "));
  42.                     divObj.appendChild(delObj);
  43.                     span.appendChild(divObj);
  44.                 }
  45.             }
  46.             function delInputFile(spanId, fileId) 
  47.             {
  48.                 var span = document.getElementById(spanId);
  49.                 var divObj = document.getElementById(fileId);
  50.                 if (span != null && divObj != null) 
  51.                 {
  52.                     span.removeChild(divObj);
  53.                 }
  54.             }
  55.         //-->
  56. </SCRIPT>
  57. <METAcontent="MSHTML 6.00.2800.1528"name=GENERATOR>
  58. </HEAD>
  59. <BODYclass=pagebackground>
  60. <FORMid=formaction=XXXmethod=postencType=multipart/form-data>
  61. <TABLEclass=dialog1height=20cellSpacing=1cellPadding=8width="90%"align=center>
  62. <TBODY>
  63. <TR>
  64. <TD noWrap>通過檔案上傳: </TD>
  65. <TDid=filespan noWrap>
  66. <INPUTclass=inputtype=filesize=40name=file>
  67. <INPUTid=btnAddonclick=addFile() type=buttonvalue=新增>
  68. </TD>
  69. </TR>
  70. </TBODY>
  71. </TABLE>
  72. </FORM>
  73. </BODY>
  74. </HTML>

  2. 案例二:

  1. <html>
  2. <head>
  3. <metahttp-equiv="Content-Type"content="text/html; charset=gb2312">
  4. <title>新建網頁 1</title>
  5. </head>
  6. <body>
  7. <scriptlanguage=JavaScript>
  8.             function fAddAttach()
  9.             {
  10.                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>';
  11.                var Attach=document.getElementById("dvReadAttach");
  12.                var spnList=Attach.getElementsByTagName("SPAN");
  13.                var spn=document.createElement("DIV");
  14. spn.className="qrc4";
  15. spn.innerHTML=gAttchHTML;
  16.                spn.childNodes[1].childNodes[0].name="attachfile[]" + spnList.length;
  17.                Attach.appendChild(spn);
  18.                fGetObjInputById(spn,"btnDeleteReadAttach").onclick=function(){fDeleteAttach(this);};
  19.                document.getElementById("aAddAttach").innerHTML="繼續新增附件";
  20. Attach.style.display="";
  21.                if(spnList.length>1)
  22.                {
  23.                  spn.childNodes[0].innerHTML="   ";
  24.                }
  25.             }
  26.             function fGetObjInputById(obj,id)
  27.             {
  28.                var inputList=obj.getElementsByTagName("INPUT");
  29.                for(var i=0;i<inputList.length;i++)
  30.                {
  31.                  if(inputList[i].id==id)
  32.                  {
  33.                     return inputList[i];
  34.                  }
  35.                }
  36.                return null;
  37.             }
  38.             function fDeleteAttach(obj)
  39.             {
  40.                 try
  41.                 {
  42.                     obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);
  43.                     var Attach=$("dvReadAttach");                       
  44.                     var spnList=Attach.getElementsByTagName("SPAN");
  45.                     if(spnList.length==0)
  46.                     {
  47.                          document.getElementById("aAddAttach").innerHTML="新增附件";
  48. Attach.style.display="none";
  49.                     }
  50.                     else
  51.                     {
  52.                         document.getElementById("aAddAttach").innerHTML="繼續新增附件";
  53.                     }
  54.                 }
  55.                 catch(exp)
  56.                 {
  57.                     //fDebug("fDeleteAttach",exp.description);
  58.                 }
  59.             }
  60. </script>
  61. <BODYBGCOLOR=WHITE>
  62. <ahref="javascript:fAddAttach();"id="aAddAttach">新增附件</a>
  63. <divid="dvReadAttach"style="display:none">
  64. </BODY>
  65. </body>
  66. </html>

二、清空inputFile的內容

  1. 方法一:

  1. <FORMname=form1>
  2. <inputtype="file"name=f>
  3. <inputtype=buttonvalue=resetonclick="f.select();document.execCommand('delete')">
  4. </FORM>

  2. 方法二:

  1. <FORMname=form1>
  2. <inputtype="file"name=f>
  3. <inputtype=buttonvalue=resetonclick="form1.f.outerHTML='<input type=/'file/' name=/'f/'>'">
  4. </FORM>