首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使设置了焦点,也无法在文本框中键入内容

即使设置了焦点,也无法在文本框中键入内容
EN

Stack Overflow用户
提问于 2010-09-10 22:10:14
回答 5查看 3.3K关注 0票数 2

我有一个flash键盘(不是我写的,我也不知道flash),它被用户用来输入到web表单中。键盘工作正常,我可以正确地填写字段。

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

如果我再次在该字段中单击鼠标,则可以在该字段中键入内容。导致这种行为的原因可能是什么?在EnsureNotObscured()中滚动文档后,我甚至尝试使用document.getElementById(field.id).focus()显式设置焦点,但仍然不起作用。我甚至尝试过对视野进行模糊处理,然后将焦点调回原来的位置,但没有成功。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-11 04:54:03

我把它修好了。我通过模糊字段并在超时后将焦点调回原来的位置来获得它。我不能在这里写为什么它会工作,因为它涉及到我们自己的javascript框架。耽误您时间,实在对不起。

票数 2
EN

Stack Overflow用户

发布于 2010-09-10 22:30:48

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

如果只是IE,我也许能够挖掘出一些我必须解决这个问题的代码。

票数 1
EN

Stack Overflow用户

发布于 2011-07-21 02:06:53

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

代码语言:javascript
运行
复制
    /// <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);
    }

祝你编码愉快。

布赖恩

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3685242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档