上传文件 - IE 不会释放输入字段的焦点

发布于 2024-11-05 12:10:44 字数 331 浏览 0 评论 0原文

当您在 IE 中上传文件时(至少在 IE8 中),您可以双击该字段,而不是单击“浏览”。如果这样做,问题是当您在选择文件后返回到表单时。它看起来像这样:

在此处输入图像描述

无论您将鼠标移到何处,IE 都会选择该字段中的文本页面(如果您单击任意位置,它会释放焦点)
如果您一开始单击浏览按钮,则不会发生这种情况,只有在双击输入字段时才会发生这种情况。

现在,有没有办法让字段的行为方式相同,无论您单击按钮还是双击字段?就像将焦点设置在表单的其他部分一样。

它开始让我烦恼了。

When you upload files in IE (at least in IE8) you can double click on the field instead of clicking browse. The problem if you do this is when you return to the form after selecting a file. It will look like this:

enter image description here

IE will select the text in the field no matter where you move your mouse on the page (It releases focus if you click anywhere though)
This will not happen if you click the browse button to begin with, it only occurs when double clicking the input field.

Now, is there a way to make the field behave the same way, whether you click the button or double click the field? Like setting focus on some other part of the form.

It's starting to annoy me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你的笑 2024-11-12 12:10:44

您基本上想要点击“onchange”事件,然后将焦点设置在其他地方: HTML 文件输入JS 事件

我能够使用 jQuery 和此代码让 IE8 突出显示消失(其中“up”是文件输入的 id):

$(document).ready(function() {
    $("#up").change(function() {
        $(document).focus();
    });
});

You basically want to tap in to the "onchange" event and then set the focus elsewhere: HTML File input JS events

I was able to get the IE8 highlighting to go away using jQuery and this code (where "up" is the id of your file input):

$(document).ready(function() {
    $("#up").change(function() {
        $(document).focus();
    });
});
贱人配狗天长地久 2024-11-12 12:10:44

以下对我有用:

    // Fix bug on IE 11
    $("input[type='file']").click(function() {
        var $this = $(this);
        $this.hide();

        setTimeout(function() {
            $this.show();
        });
    });

The following works for me:

    // Fix bug on IE 11
    $("input[type='file']").click(function() {
        var $this = $(this);
        $this.hide();

        setTimeout(function() {
            $this.show();
        });
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文