为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery 打开文件对话框在 Chrome 和 IE 中多次打开

jQuery 打开文件对话框在 Chrome 和 IE 中多次打开

蝴蝶不菲 2021-10-14 16:39:09
我正在用 Django 制作一个网站来上传照片,遵循这篇博文。我一直在 Firefox 中开发,它运行良好。我刚刚在 Chrome 和 Internet Explorer 中尝试过,它们都在选择文件后重新打开打开文件对话框。IE 实际上在第一次之后开始上传(在重新打开的对话框后面)。Chrome 在第二次选择之前不会开始上传,如果第一个选择被关闭或取消,它将重新打开对话框。我已经浏览了关于 SO 的相关帖子,但我似乎找不到任何对我有意义的东西。给定下面的代码,为什么对话框会打开两次?为什么它在 Firefox 中的行为会有所不同?images_upload.html :{% extends "base_generic.html" %}{% load staticfiles %}{% block content %}<form method="post" enctype="multipart/form-data">  {% csrf_token %}  <!-- {{ formE.as_p }} --></form>  {% block javascript %}    <script src="{% static 'js/jquery-3.1.1.min.js' %}"></script>    <script src="{% static 'js/bootstrap.min.js' %}"></script>    <script src="{% static 'js/jquery-file-upload/vendor/jquery.ui.widget.js' %}"></script>    <script src="{% static 'js/jquery-file-upload/jquery.iframe-transport.js' %}"></script>    <script src="{% static 'js/jquery-file-upload/jquery.fileupload.js' %}"></script>    <script src="{% static 'photos/js/images-upload.js' %}"></script>  {% endblock %}  {% block image_content %}    <div style="margin-bottom: 20px;">      <button type="button" class="btn btn-primary js-upload-photos">        <span class="glyphicon glyphicon-cloud-upload"></span> Upload photos      </button>      <input id="fileupload" type="file" name="image" multiple             style="display: none;"             data-url="{% url 'ExifReader:image_upload' %}"             data-form-data='{"csrfmiddlewaretoken": "{{ csrf_token }}"}'>    </div>    <div class="modal" id="modal-progress" data-backdrop="static" data-keyboard="false">      <div class="modal-dialog">        <div class="modal-content">          <div class="modal-header">            <h4 class="modal-title">Uploading...</h4>          </div>          <div class="modal-body">            <div class="progress" style="height: 42px;">              <div class="progress-bar" role="progressbar" style="height: 42px; width: 0%;">0%</div>            </div>            <br>编辑:我console.log('HERE');在第 2行添加了该行images-upload.js,并在控制台中打印了两次。我猜脚本以某种方式被调用了两次?
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

我终于找到了问题所在。在base_generic.html我有一个 javascript 块:
{% block javascript %}{% endblock %}
尽管该块中没有任何内容,但它显然在 .js 中循环了 javascript 块images_upload.html。解决方案:从base_generic.html.

也许这很明显?显然我不太了解块标签。


查看完整回答
反对 回复 2021-10-14
  • 1 回答
  • 0 关注
  • 282 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信