2013-10-13 33 views
1

我一直在对一小段代码进行故障排除,以允许用户选择本地文件,将本地文件的文本内容输入到变量中,然后将变量值转储到textarea中。我的HTML5/Javascript代码不会执行多次相同的功能?

这一切都很好,用户可以选择一个文件,然后在我的textarea中查看该文件的内容。这是问题所在,我有一个名为“ClearAll”的按钮,它清除了textarea的值。如果用户再次选择本地文件,则不会有任何反应,并且textarea永远不会被本地文件内容填充。

总之,选择一个本地文件一旦工作,但第二次没有。

这里是我的代码:

<input type="file" id="files" name="file" /><br> 
<script> 
    function handleFileSelect(evt) { 
     var files = document.getElementById('files').files; 
     if (!files.length) { 
      alert('Please select a file!'); 
      return; 
     } 
     var file = files[0]; 
     var reader = new FileReader(); 
     reader.onloadend = function(evt) { 
      if (evt.target.readyState == FileReader.DONE) { // DONE == 2 
       document.getElementById('myInput').textContent = evt.target.result; 
      } 
     }; 
     reader.readAsText(file, "UTF-8"); 
    } 
document.getElementById('files').addEventListener('change', handleFileSelect, false); 

...而且我也有一个按钮,成功地调用一个函数来清除textarea的通过只是设置其值为=""。由于某些原因,textarea人口只能使用一次。任何人都可以看到这是为什么?

快速评论:我想也许如果我改变了当ClearAll按钮被激活时files的内容,它可能会重置的东西,但没有运气。

+0

任何人都有一些见解?我很乐意尝试任何建议,只要指出我的方向正确! – jake9115

回答

0

问题在最后一行。当您选择相同的文件名时,事件更改不会启动两次。 重命名文件,并看到它的作品。