javascript - 我选择的图像未出现在预览中
问题描述
我是 javascript 和 jquery 的新手。问题是:当我选择图像时,它不会立即出现在预览中。我用这段代码部分解决了这个问题:
document.getElementById("id_shield_image").onchange = function () {
var reader = new FileReader();
reader.onload = function (e) {
if($("#parameters_edit_form img").length != 0){
$("#parameters_edit_form img").attr('src', e.target.result);
}
};
reader.readAsDataURL(this.files[0]);
};
现在,该图像仅在有另一个图像出现时才会出现,但如果我第一次这样做,它就不起作用。
这是表单的 HTML:
<div id="main-content" class="col-12">
<div class="row">
<div class="col-12">
<form id="parameters_edit_form" enctype="multipart/form-data" method="POST">
{% csrf_token %}
{% bootstrap_form %}
</form>
</div>
</div>
</div>
任何人都可以帮忙吗?提前致谢!
解决方案
根据共享的有限 HTML 进行猜测,您需要在元素不在页面上时创建该元素。
document.getElementById("id_shield_image").onchange = function () {
var reader = new FileReader();
reader.onload = function (e) {
if($("#parameters_edit_form img").length != 0){
$("#parameters_edit_form img").attr('src', e.target.result);
}else{
var img = $('<img>');
img.attr('src', e.target.result);
img.appendTo('#parameters_edit_form');
}
};
reader.readAsDataURL(this.files[0]);
};
推荐阅读
- pdf - itext 7 PDFA1B 转换成功,但 Acrbat DC compaints “子集字体中的 CIDSet 缺失”
- javascript - 传单未捕获类型错误:无法读取未定义的属性“长度”且未定义标记簇
- reactjs - 创建新资源的良好 URI 设计是什么?
- javascript - 在 Javascript 类中声明和访问变量
- firebase - 从新的 firebase auth 模拟器中删除所有用户
- jenkins - 如何在詹金斯管道中创建新凭据
- python - Azure devops 管道缓存 python 依赖项
- python - Python pandas 数据框打印 ValueError:无法将字符串转换为浮点数:'1,971.25'
- javascript - 制作一个 for 循环来计算特定单元格,然后将结果写入行中的最后一个单元格
- angular - 如何在 http 请求 URL 中使用 Observable?