JavaScript在更改文件输入时出错

JavaScript在更改文件输入时出错,javascript,jquery,html,Javascript,Jquery,Html,我不明白为什么网络技术如此混乱。 我正在努力完成一件非常简单的事情。但发现它有漏洞 所以我要做的是将用户选择的图像加载到div中。它第一次起作用。但一旦我选择浏览并选择另一个图像,它就不起作用了。这里怎么了 <input type="file" id="imgUploadButton" class="default" name="picture" onchange="imageUploaded(event);" /> 如果我是您,我会对onchange事件进行稍微不同的定义,例如通

我不明白为什么网络技术如此混乱。 我正在努力完成一件非常简单的事情。但发现它有漏洞

所以我要做的是将用户选择的图像加载到div中。它第一次起作用。但一旦我选择浏览并选择另一个图像,它就不起作用了。这里怎么了

<input type="file" id="imgUploadButton" class="default" name="picture" onchange="imageUploaded(event);" />

如果我是您,我会对onchange事件进行稍微不同的定义,例如通过执行以下操作:

<input type="file" id="imgUploadButton" />
<div><img id="imageTool" /></div>
<script>
  // Create a self-executing anonymous function so that the window
  // isn't being cluttered with global variables
  (function() {
    // First get the file element
    var fileElement = document.getElementById('imgUploadButton');

    // Now if we found the file element, add the onchange event, 
    // doing it like this maximizes compatibility
    if (fileElement) fileElement.onchange = imageUploaded;

    // Define your imageUploaded function, as it will get hoisted
    // anyway
    function imageUploaded(event) {
      var selectedFile = event.target.files[0];
      var reader = new FileReader();
      var imgtag = document.getElementById("imageTool");
      imgtag.title = selectedFile.name;
      reader.onload = function(event) {
        imgtag.src = event.target.result;
      };
      reader.readAsDataURL(selectedFile);
    }
  }());
</script>

当然,最好是在body标签的末尾这样做。请参见my。

如果我是您,我会对onchange事件进行稍微不同的定义,例如通过执行以下操作:

<input type="file" id="imgUploadButton" />
<div><img id="imageTool" /></div>
<script>
  // Create a self-executing anonymous function so that the window
  // isn't being cluttered with global variables
  (function() {
    // First get the file element
    var fileElement = document.getElementById('imgUploadButton');

    // Now if we found the file element, add the onchange event, 
    // doing it like this maximizes compatibility
    if (fileElement) fileElement.onchange = imageUploaded;

    // Define your imageUploaded function, as it will get hoisted
    // anyway
    function imageUploaded(event) {
      var selectedFile = event.target.files[0];
      var reader = new FileReader();
      var imgtag = document.getElementById("imageTool");
      imgtag.title = selectedFile.name;
      reader.onload = function(event) {
        imgtag.src = event.target.result;
      };
      reader.readAsDataURL(selectedFile);
    }
  }());
</script>

当然,最好是在body标签的末尾这样做。见我的。

谢谢。我以前也试过这个。它起作用了。请查看更新的问题及其编辑。我将感谢你的帮助。我在这上面浪费了很多时间。请你编辑你的问题,而不是回答:真诚的道歉。犯了一个错误。这里的按钮没有反应。发布了一个新问题。请看这里,并回答:一些小提琴。标记你的答案。不过我还是用AJAX解决了这个问题。谢谢,希望不会太令人沮丧:谢谢。我以前也试过这个。它起作用了。请查看更新的问题及其编辑。我将感谢你的帮助。我在这上面浪费了很多时间。请你编辑你的问题,而不是回答:真诚的道歉。犯了一个错误。这里的按钮没有反应。发布了一个新问题。请看这里,并回答:一些小提琴。标记你的答案。不过我还是用AJAX解决了这个问题。谢谢,希望不会太令人沮丧: