【问题标题】:Input type file triggering twice in mozilla(windows)输入类型文件在mozilla(windows)中触发两次
【发布时间】:2013-09-01 18:26:27
【问题描述】:

我的网站有一个奇怪的问题(使用 backbone.js,但我不觉得它与这个框架有关)。我使用的模板是一个 bootstrap 驱动的 Admin 主题,名为 Ace Admin

文件的HTML如下:

<input type="file" class="profileImage" name="profileImage" id="id-input-file-1" /> 

与相同的脚本

    $('#id-input-file-1').ace_file_input({
        no_file:'Image resolution 640*640',
        btn_choose:'Choose',
        btn_change:'Change',
        droppable:false,
        onchange:null,
        thumbnail:true,
        whitelist:'gif|png|jpg|jpeg',
        blacklist:'exe|php',
        //onchange:''
        //
    });        

仅在 mozilla 中,在 windows 机器 中也是如此,当我点击input 时,文件选择屏幕会出现两次。准确地说,当我单击输入时,本地驱动器窗口打开。我选择一个文件并关闭它。一旦我关闭它,另一个窗口就会打开。实际上,如果我单击文件输入,我必须一个接一个地关闭两个窗口。

所以我的问题是:

  1. 我在这里做错了什么?
  2. 我能以某种方式处理这个问题吗?比如我得到点击事件并注册状态并通过检查状态来处理第二次调用?
  3. 有没有更明显的方法通过脚本来处理这个问题?

我的输入文件

弹出窗口

【问题讨论】:

  • 嘿,你知道如何在这个 ace 管理文件字段中显示存储的图像吗?在编辑表单中,我想用删除链接显示存储的图像
  • 嗨@SatheeshNarayanan:是的,您可以使用删除链接显示存储的图像。如果您将一个类添加到输入字段/跨度,则会出现删除链接部分。编辑部分的图像,你必须显示为一个小缩略图,你需要一些自定义。在此之后,为删除图标添加一个类,然后为 onclick 添加一个类,只需清空 img src&lt;input&gt; 中的链接。希望你能明白。
  • 感谢您的帮助,我已经实现了它并且运行良好。再次感谢
  • @RoyMJ : 你好 Roy,你是如何指定路径的(上传图片的服务器端脚本)?

标签: javascript jquery html file-upload html-input


【解决方案1】:

经过漫长的 1 个月后,我找到了解决方案。有一个带有模板的 min 文件,里面有一个专门用于 mozilla 的代码:

        if (b.browser.mozilla) {
            n.on("click", function () {
                if (!k.disabled && !m.attr("readonly")) {
                    m.click()
                }
            })
        }

当我删除它时,它不再触发文件上传两次。我猜这用于旧版本的 Mozilla。有很多样式与单个文件按钮相关,并且原始文件类型被隐藏了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    相关资源
    最近更新 更多