MozTW 討論區
https://forum.moztw.org/

請教一個JavaScript的在IE無效的問題
https://forum.moztw.org/viewtopic.php?f=13&t=13180
1 頁 (共 1 頁)

發表人:  訪客 [ 2006-03-09, 20:19 ]
文章主題 :  請教一個JavaScript的在IE無效的問題

小弟目前再寫一個上傳的頁面,希望能夠再使用者選擇一個檔案後,會多出一個新的選擇的input表單,
目前這個程式只能在FX1.5及Opera8.52上面使用,IE只會新增一次的表單,
而且IE6無法使用刪除按鈕,因為IE6沒有DOM檢視器之類的東西,也沒有出現JS的錯誤,導致小弟不知道如何除錯,
請各位大大幫忙一下,謝謝

代碼:
<div>
   <script type="text/javascript">
   <!---
   n=1;
   function new_upload(){
      text=document.createElement("input");
      text.type="file";
      text.size="40";
      text.setAttribute('onChange','new_upload()');
      text.name="upload[]";
      document.getElementById("upload_div").appendChild(text);
      //建立刪除按鈕
      text=document.createElement("input");
      text.type="button";
      text.value="刪除";
      text.id="del"+n;
      text.name="del_button";
      n++;
      text.setAttribute('onClick','del_upload(this.id)');
      document.getElementById("upload_div").appendChild(text);
   }
   function del_upload(del){
      alert(del);
      upload=document.getElementsByName("upload[]");
      del_button=document.getElementsByName("del_button");
      for(m=0;m<del_button.length;m++){
         if((del_button[m].id)==del){
            del_num=m;
         }
      }
      document.getElementById("upload_div").removeChild(upload[del_num+1]);
      document.getElementById("upload_div").removeChild(del_button[del_num]);
   }
   -->
   </script>
<noscript>
您的瀏覽器不支援(或關閉)JavaScript,一次只能上傳一個檔案。<br/>如果您想一次上傳多個檔案,請打開JavaScript支援,或使用<a href="http://www.moztw.org" target="_blank">Firefox</a>瀏覽器
</noscript>
<form enctype="multipart/form-data" action="?page=./elib/upload.php" method="post">
<div id="upload_div">
<input type="file" name="upload[]" onChange="new_upload()" size="40"/><br/>
<input type="hidden"name="chk" value="ok"/>
</div>
<input type="submit" value="上  傳"/>
</form>
</div>

發表人:  訪客 [ 2006-03-10, 00:13 ]
文章主題 : 

自己回貼,以下JS可以在IE上使用了
代碼:
<script type="text/javascript">
   <!---
   n=1;
   function new_upload(){
      text=document.createElement("input");
      text.type="file";
      text.size="40";
      text.setAttribute('onchange','new_upload()');//For Firefox Opera
      text.onchange = function(){//For IE
         new_upload();
      };
      text.name="upload[]";
      document.getElementById("upload_div").appendChild(text);
      //建立刪除按鈕
      text=document.createElement("input");
      text.type="button";
      text.value="刪除";
      text.id="del"+n;
      text.name="del_button";
      n++;
      text.setAttribute('onclick','del_upload(this.id)');//For Firefox Opera
      if ((document.all)&&(document.getElementById)){//For IE
         text["onclick"]=new Function("del_upload(this.id)");
      }
      document.getElementById("upload_div").appendChild(text);
   }
   function del_upload(del){
      upload=document.getElementsByName("upload[]");
      if(upload.length==1){//For IE
         tmp=document.getElementsByTagName('input');
         tmp_n=0;
         tmp_ary=new Array();
         for(n=0;n<tmp.length;n++){
            if(tmp[n].name=="upload[]"){
               tmp_ary[tmp_n]=tmp[n];
               tmp_n++;
            }
         }
         upload=tmp_ary;
      }
      del_button=document.getElementsByName("del_button");
      if(del_button.length==0){//For IE
         tmp=document.getElementsByTagName('input');
         tmp_n=0;
         tmp_ary=new Array();
         for(n=0;n<tmp.length;n++){
            if(tmp[n].name=="del_button"){
               tmp_ary[tmp_n]=tmp[n];
               tmp_n++;
            }
         }
         del_button=tmp_ary;
      }
      for(m=0;m<del_button.length;m++){
         if((del_button[m].id)==del){
            del_num=m;
         }
      }
      document.getElementById("upload_div").removeChild(upload[(del_num+1)]);
      document.getElementById("upload_div").removeChild(del_button[del_num]);
   }
   -->
   </script>

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/