javascript - 如何预览从文件输入中选择的图像?(如何检测用户何时选择文件以便预览给定的图像?)
问题描述
所以我试图设置一个图像选择区域,用户在其中选择图像,然后在“选择图像”按钮下方预览所选图像。这是我的html:
<form action="#" id="submitImg">
<!--Customize the file selection button-->
<label for="myFile" id="chooseFileBtn"><i class="fas fa-plus"></i>Choose an Image</label><br>
<input type="file" id="myFile" name="filename" hidden>
<!--<img> element where the selected image should appear-->
<img src="#" id="imgPreview">
<input type="submit" id="submitImage">
</form>
我试过使用input.addEventListener()
:
let chooseImg = document.getElementById('#myFile');
chooseImg.addEventListener("change", function(event) {
document.getElementById('imgPreview').src = document.getElementById('myFile').value;
}, false);
但它不起作用,并且检查元素说Uncaught TypeError: Cannot read property 'addEventListener' of null
。
我也尝试过使用input.onchange
:
let chooseImg = document.getElementById('#myFile');
chooseImg.onchange = function(event) {
document.getElementById('imgPreview').src = document.getElementById('myFile').value;
}
,但这也不起作用,并且给出了类似的错误消息:
Uncaught TypeError: Cannot set property 'onchange' of null
那么我应该怎么做呢?
解决方案
vanilla JS不使用#字符作为id
从改变
let chooseImg = document.getElementById('#myFile');
至
let chooseImg = document.getElementById('myFile');
推荐阅读
- react-redux - 当布尔值为假时如何验证数字数组?
- python - 编写长而简单的 if 语句的更好方法?
- webrtc - 如何在 Ant Media Server 中发布 RTMPS 流?
- c++ - 号码拆分
- flutter - flutter - 如何在 rflutter_alert 对话框中显示 CircularProgressIndicator
- javascript - 从javascript中的查询参数获取对象数组
- python - 如何将 tkinter 窗口设置为仅在用户第一次运行程序时打开并且不再打开?
- elixir - 在 Phoenix / Elixir 中创建性别下拉列表会导致“分配 @all_genders 在 eex 模板中不可用”。
- java - 生成对 REST API 的授权访问的最佳方式是什么?
- python-3.x - 在循环中使用 BeautifulSoup 的输出作为输入