Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使设置了焦点,也无法输入文本框_Javascript - Fatal编程技术网

Javascript 即使设置了焦点,也无法输入文本框

Javascript 即使设置了焦点,也无法输入文本框,javascript,Javascript,我有一个flash键盘(不是我写的,我不知道flash),用户用它来输入web表单。键盘工作正常,我能够正确填充字段 当键盘遮挡任何字段时,我滚动文档(在EnsureRenotobscured()方法中),这样输入字段就不会被遮挡。这就是我的问题所在。在滚动文档之后,我可以看到输入字段仍然有焦点(光标闪烁),但是当我键入时,什么也没有出现 如果我再次在该字段中单击鼠标,则可以在该字段中键入内容。这种行为的原因可能是什么?我甚至尝试使用 在EnsureRenotobscured()中滚动文档后,d

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

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

如果我再次在该字段中单击鼠标,则可以在该字段中键入内容。这种行为的原因可能是什么?我甚至尝试使用
在EnsureRenotobscured()中滚动文档后,document.getElementById(field.id).focus()仍然不起作用。我甚至试着做模糊的领域,然后设置重点回来,但没有成功

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


如果只是IE的话,我也许能找到一些代码来解决这个问题。

我让它工作起来了。我通过模糊视野并在一段时间后将焦距调回得到了它。我不能在这里写为什么它能工作,因为它涉及我们自己的javascript框架。谢谢你抽出时间

这里甚至需要一个答案,这太可怕了,但这里有一个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);
    }
//
///根据可用的方法,使用Page或ScriptManager方法将焦点设置为控件。
/// 
/// 
公共静态无效设置焦点(网络控制)
{
string javaScript=string.Format(“setTimeout(函数(){$get({0}').blur();setTimeout(函数(){$get({0}').focus();}},1);”,control.ClientID);
[ClientScript或ScriptManager].RegisterStartupScript(control,control.GetType(),“setFocus”,javaScript,true);
}
快乐编码


Brian只需要处理z-index属性。以这样的方式设置z索引,使文本框应位于顶部

我将帮助每个人了解用户281693给出的答案代码-

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

元素是你的文本框。

如果你将焦点设置在另一个字段上,然后又回到原来的位置,会发生什么?这和模糊并将焦点设置在字段上不是一回事吗?是的,这就是IE。我甚至没有在其他浏览器中测试过这一点。我不能说为什么它是唯一的IE,但如果你能给出一些建议,那就太好了。那么你能在其他浏览器中测试它,并让我们知道是否发生了同样的问题吗?我不能,这个应用程序运行在我们自己的专有环境中,运行IE。没有其他浏览器。谢谢。我知道这是老消息,但我只是想说声谢谢!!!我一直在研究一个与此非常相似的愚蠢问题,从未想过先模糊它,然后再聚焦它。这对我有用!再次感谢!