2014-03-19 37 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