【发布时间】:2016-08-20 05:03:16
【问题描述】:
我想预览用户即将上传的图像。现在,我知道我的代码适用于一个输入和一个图像。一旦我添加另一对输入和图像,与那个工作相同,没有图像可以预览......
如何添加更多输入,每个输入都有自己的图像来预览特定输入?
我的代码如下所示:
HTML:
<input type="file" accept="image/*" onchange="previewFile()">
<img id="output1" height="100px">
和 Javascript:
function previewFile(){
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.onloadend = function () {
preview.src = reader.result;
}
if (file) {
reader.readAsDataURL(file);
}
else {
preview.src = "";
}
}
我认为必须给函数一个 Var,我想选择哪个输出,但我对 Js 完全陌生,所以也许你可以帮助我!
谢谢!
编辑:
我不想在我的输入标签中有“多个”属性。我创建了多个 div,每个 div 都有一个不可见的输入标签和一个覆盖绝对位置的图像。所以当用户点击 div 时,他可以选择一张图片,然后将图片填满整个 div。
对于一个 div 来说一切正常,但我需要另外 11 个,每个单独工作,以便用户可以管理他即将上传的图片的顺序。
那么我必须做些什么才能使 12 个上传标签中的每一个都与自己的预览图像分开工作?
【问题讨论】:
-
您的代码有任何错误...尝试通过 firefox 48 对其进行测试。
-
也许您使用的是相同的 ID?网页中的 ID 必须是唯一的。
-
“只要我添加另一对输入和图像,就和工作的那个一样”
document中的Element.id应该是唯一的。您可以使用设置了multiple属性的单个<input type="file">元素,以允许用户在单个change事件中上传多个文件。
标签: javascript jquery image preview