2014-03-19 66 views
0

我看到一個帖子How do I read in a local text file with javascript?在onchange事件處理過程中設置onclick事件觀察器可能嗎?

我想添加一個按鈕來模擬上傳。所以我的考慮是設置一個觀察者在onchange處理onchange,可能嗎?

這裏是jsfiddle

JS

function readMultipleFiles(evt) { 
//Retrieve all the files from the FileList object 
var files = evt.target.files; 

if (files) { 
    for (var i = 0, f; f = files[i]; i++) { 
     alert(f); 
     var r = new FileReader(); 
     r.onload = (function (f) { 
      return function (e) { 
       var contents = e.target.result; 
       alert(contents); 
      }; 
     })(f); 
     r.readAsText(f); 
     } 
    } else { 
     alert("Failed to load files"); 
    } 
} 
document.getElementById('fileinput').addEventListener('change', readMultipleFiles, false); 

HTML

<input type="file" id="fileinput" multiple /> 
+0

所以有什麼問題? - 小提琴似乎正在閱讀文件 –

+0

我想添加一個按鈕,當點擊顯示警報消息。 – Sarotti

+0

所以......阻止你添加按鈕的是什麼? –

回答

0

相反的變化處理程序,添加一個按鈕,並添加一個單擊處理

<input type="file" id="fileinput" multiple /> 
<button id="read">Read</button> 

然後

jQuery(function ($) { 
    function readMultipleFiles(input) { 
     //Retrieve all the files from the FileList object 
     var files = input.files; 

     if (files && files.length) { 
      for (var i = 0, f; f = files[i]; i++) { 
       var r = new FileReader(); 
       r.onload = (function (f) { 
        return function (e) { 
         var contents = e.target.result; 
         alert(contents); 
        }; 
       })(f); 
       r.readAsText(f); 
      } 
     } else { 
      alert("Failed to load files"); 
     } 
    } 

    var fileIn = $('#fileinput')[0]; 
    $('#read').click(function() { 
     readMultipleFiles(fileIn) 
    }) 
}) 

演示:Fiddle

+0

哥們,這就是我需要的。 :) – Sarotti