我选择的图像不会出现在预览中

gk7wooem  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(340)

此问题已在此处找到答案

上传前预览图像(28个答案)
两天前关门了。
我对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>

有人能帮忙吗?提前谢谢!

egdjgwm8

egdjgwm81#

根据有限的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]);
        };

相关问题