javascript - JS 应该在页面重新加载后保持其工作状态

标签 javascript django django-forms

我的 JS 基本上是零,所以这个问题可能是完全愚蠢的,无论如何...... 我有一个在 bootstrap4 文件输入中显示文件名的脚本

https://getbootstrap.com/docs/4.0/components/input-group/#custom-file-input

该脚本负责显示输入中的文件名:

enter image description here

问题是当页面重新加载时(例如,由于表单验证失败),该字段将自身变为空,即其中没有文件名。 是否可以修改此脚本以在页面重新加载后显示文件名? 附:重新加载后文件就在那里。它们由后端兑现。 文件输入html代码如下 {% endif %}

<script>
    $(document).on('change', '.custom-file-input', function (event) {
        $(this).next('.custom-file-label').html(event.target.files[0].name);
    })
</script>

{% if widget.is_initial %}
    <a href="{{ widget.value.url }}"><img class="ml-0" src="{% thumbnail widget.value "small"  %}"></a>

    {% if not widget.required %}
    {% endif %}
    <br>

{% endif %}

<div class="input-group mb-3">
    <div class="input-group-prepend">
        <span class="input-group-text" id="inputGroupFileAddon01">Upload</span>
    </div>
    <div class="custom-file">
        <input type="{{ widget.type }}" name="{{ widget.name }}" class="custom-file-input" id="inputGroupFile02" id="inputGroupFile02" aria-describedby="inputGroupFileAddon01" {% include "django/forms/widgets/attrs.html" %}>
        <label class="custom-file-label " for="inputGroupFile02">{{ widget.value|default_if_none:"Choose the file" }} {{ widget.filename }}</label>
    </div>
</div>

最佳答案

首先,您没有展示完整的代码、完整的表单和后端 View 。根据我的理解,如果您想在页面重新加载后保留文件名,我可以建议您。您可以将其存储在 View 中的 session 中,如下所示:

   request.session['file']=reques.FILES

在您的模板中,您可以像这样获取此 session 变量,将其放在文件名的位置:

{{request.session.file}}

关于javascript - JS 应该在页面重新加载后保持其工作状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55907909/

相关文章:

javascript - 使用 jQuery (Javascript) 在段落中查找 "word"索引

python - "django.db.utils.ProgrammingError: relation "app_user "does not exist"在 manage.py 测试期间

Django:为表单向导中的步骤动态设置表单集

python - 当字段变化时如何调用类模型中的函数?

javascript - 更改 HTML 占位符元素的格式

javascript - 当 onclick 函数调用时如何在 jwplayer 中播放视频....播放列表

python - 模型方法中的django反向查找

python - Stomp.py 如何从监听器返回消息

Django Formset.is_valid() 因额外表单而失败

javascript - 在 Vuetify 中折叠展开的 v-data-table 时触发方法