代码之家  ›  专栏  ›  技术社区  ›  DaveDev

IE8不允许jquery向文本框提供焦点

  •  4
  • DaveDev  · 技术社区  · 15 年前

    我有jquery,它生成一个弹出窗口,如下所示:

    http://www.jsfiddle.net/sLjfx/4/

    问题是以下行:

    $('#txtValuation').focus();
    

    似乎不想在IE8工作。弹出窗口将加载,但文本框没有焦点,在Chrome中,文本框没有焦点。有什么工作要做吗?

    1 回复  |  直到 13 年前
        1
  •  8
  •   T.J. Crowder    15 年前

    我手边没有IE8,但是试试这个: 我启动了我的Windows虚拟机,这很有效: http://www.jsfiddle.net/n25HE/ 我所做的就是把 focus 调用一个函数,并在事件处理程序完成10毫秒后调用它,如下所示:

    setTimeout(function() {
        $('#txtValuation').focus();
    }, 10);
    

    这使IE有时间实际呈现内容并为文本输入创建操作系统控件。IE不能在底层控件存在之前集中处理事情。