代码之家  ›  专栏  ›  技术社区  ›  Alex Duggleby

在Internet Explorer 6中更改后模糊选择

  •  0
  • Alex Duggleby  · 技术社区  · 15 年前

    简单的问题。除IE6外,这一切都有效:

    <html>
    <body>
    </body>
    <select id="test" onchange="blur()">
    <option name="one">One</option>
    <option name="two">Two</option>
    <option name="three">Three</option>
    </select>
    </html>
    

    有没有办法在IE6中实现这个功能?允许使用javascript和jquery黑客。

    有什么想法、评论或建议吗? 提前谢谢

    2 回复  |  直到 15 年前
        1
  •  3
  •   Waleed Amjad    15 年前

    在jQuery下:

    <script type="text/javascript">
    $(function() {
        $('#test').change(function() {
            $(this).blur();
        });
    });
    </script>
    

    或者您可以尝试替换:

    用:

    <select id="test" onchange="javascript:blur(this);">
    

    更新 :实际上,IE6 JavaScript引擎似乎与blur()存在问题。

    (不理想的)解决方法是:

    <script type="text/javascript">
    $(function() {
        $('#test').change(function() {
            $('body').focus();
        });
    });
    </script>
    

    它将通过聚焦HTML文档而失去对“选择输入”字段的关注。

        2
  •  0
  •   bobince    15 年前
    <select id="test" onchange="blur()">
    

    您要模糊选择,而不是窗口(用作全局对象,因此这与 window.blur() )。

    <select id="test" onchange="this.blur();">
    

    由于一个错误,除了IE6之外,其他都可以使用。你可以通过集中注意力来绕过它:

    <a href="#" id="x"></a>
    <select id="test" onchange="var x= document.getElementById('x'); x.focus(); x.blur();">
    

    但是!不管怎样,不要这样做。您将中断选择的键盘辅助功能(因为按向上/向下键会立即发送更改事件)。这与导航时所面临的下拉列表滥用问题是相同的。