【问题标题】:Unable to type in textbox even with focus set即使设置了焦点也无法在文本框中输入
【发布时间】:2010-09-10 14:10:14
【问题描述】:

我有一个 Flash 键盘(不是我写的,我不知道 Flash),用户可以使用它来输入 Web 表单。键盘工作正常,我能够正确填写字段。

当键盘遮挡任何字段时,我正在滚动文档(在 EnsureNotObscured() 方法中),这样输入字段就不会被遮挡。这就是我遇到问题的地方。滚动文档后,我可以看到输入字段仍然有焦点(光标闪烁),但是当我输入时没有出现。

如果我再次在该字段中单击鼠标,则可以在该字段中输入内容。这种行为的原因可能是什么?我什至尝试使用明确设置焦点 document.getElementById(field.id).focus() 在 EnsureNotObscured() 中滚动文档后仍然无法正常工作。我什至尝试过模糊该领域,然后将焦点重新设置,但没有成功。

【问题讨论】:

  • 如果您将焦点放在另一个字段上然后又回到原来的位置会怎样?
  • 模糊化和将焦点重新放在场上不是一回事吗?

标签: javascript


【解决方案1】:

我让它工作了。我通过模糊字段并在超时后重新设置焦点来获得它。我不能在这里写它为什么会起作用,因为它涉及我们自己的 javascript 框架。谢谢你的时间。

【讨论】:

  • 我知道这是旧闻,但我只想说声谢谢!!!我一直在研究一个与此非常相似的愚蠢问题,从未想过先模糊它然后集中注意力。这对我有用!再次感谢!
【解决方案2】:

所有浏览器都会发生同样的行为吗?我知道我之前在 IE 中使用鼠标滚轮进行焦点和滚动时遇到过问题,但如果我没记错的话,这个问题在其他浏览器中不会发生。

如果只是 IE,我也许可以挖掘一些我必须解决问题的代码。

【讨论】:

  • 是的,它的 IE。我什至没有在其他浏览器中测试过这个。好吧,我不能说为什么它只有 IE,但如果你能提供一些建议,那就太好了
  • 那你能不能在其他浏览器上测试一下,如果出现同样的问题,请告诉我们?
  • 好吧,我不能,这个应用程序在我们自己的运行 IE 的专有环境中运行。没有其他浏览器。谢谢。
【解决方案3】:

可怕的是,这里甚至需要一个答案,但这里有一个 IE8 安全的方法可以让这个可爱的文本框问题消失:

    /// <summary>
    /// Sets focus to a control using either the Page or ScriptManager method depending on which is available.
    /// </summary>
    /// <param name="control"></param>
    public static void SetFocus(WebControl control)
    {
        string javaScript = String.Format("setTimeout(function() {{ $get('{0}').blur(); setTimeout(function () {{ $get('{0}').focus(); }}, 1); }}, 1);", control.ClientID);
        [ClientScript or ScriptManager].RegisterStartupScript(control, control.GetType(), "setFocus", javaScript, true);
    }

编码愉快。

布赖恩

【讨论】:

    【解决方案4】:

    只需要注意 z-index 属性。设置 z-index 以使文本框位于顶部

    【讨论】:

      【解决方案5】:

      我会用user281693给出的答案代码帮助大家-

      jQuery(element).blur();
      setTimeout((function(){
          jQuery(element).focus();
       }),100)
      

      element 是你的文本框。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多