2012-11-18 96 views

回答

0

重置你的領域是這樣的。我測試了它。它完美的作品。

  <script type="text/javascript"> 

       function handleFiles(files) { 
        for (var i = 0; i < files.length; i++) 
        { 
         alert(files[i].size + ' Bytes'); 
         reset_field('handleFilesfield'); 
       } 
       } 

       function reset_field(id) { 
       $('#'+id).html($('#'+id).html()); 
       } 

      </script> 
      ​<form> 
       <span id="handleFilesfield"><input type="file" onchange="handleFiles(this.files)"/></span> 
      </form> 
+0

如果值需要保留以便可以提交,該怎麼辦? – nnnnnn

+0

那麼就把它保存在handleFiles裏面的某個地方吧。您甚至可以將其分配給頁面中的其他表單字段,以便您可以保留它。至少,您的價值將不會與您的文件輸入相關聯。 – barakadam

1

如果選擇兩次相同圖像,然後將圖像選擇並沒有什麼變化,所以onchange處理程序不激發。如果您選擇不同的圖片,則會顯示其大小。

+1

我選擇了兩次相同的圖像,我該怎麼辦? –

+0

爲什麼你需要做任何事情?您已經在第一次使用該圖片的詳細信息時完成了一些操作... – nnnnnn

0

因爲當你點擊同一張圖片時,第二次沒有文件變化,所以onchange事件沒有被觸發,所以函數handleFiles沒有被調用,所以大小沒有得到顯示。對這種情況使用另一個事件。也許你可以重置handleFiles函數中的輸入文件。這樣,即使用戶再次選擇了相同的圖像,它也會被視爲新圖像,因此將觸發事件。

+0

我嘗試了,但不起作用。請參閱:http://jsfiddle.net/ayxZM/2/ –

0

如這裏已經提到:onchange當您選擇相同的圖像不火(=不改變價值 - 看到這是有道理的?)。但是,如果您想每次嘗試重新啓動onchange事件,請嘗試重置onmousedown事件中的值。這種方式值保持提交,並強制onchange發射。演示:http://jsfiddle.net/LeZuse/ayxZM/27/
注意:如果您需要觸摸兼容,也可以使用ontouchstart