IE,按下按钮时textarea值不会改变

时间:2010-09-22 09:57:07

标签: javascript internet-explorer javascript-events

我在互联网资源管理器中有一个令人讨厌的问题。

我有一个用于输入文字的文本区域。此textarea对用户不可见,仅用于为更高级的视图提供强大的文本输入。

由于textarea不可见,不应该在javascript中使用textarea.focus()来激活文本输入。到目前为止,我的工作效果还不错。

对于textinput,我基本上使用此事件加上onkeypress的精确副本。

textarea.onkeyup = function (e) {
        //textarea.value contains the full text
        //Update the view with this value
};

问题是有时textarea.value不会更新。我甚至可以在上面的keyup事件中看到e.keyCode中的按钮但是值没有改变。 这似乎发生在我点击页面上的某个地方,但这不会触发模糊事件。我正在记录onfocus-和onblur事件,所以我可以看到textarea失去焦点,但它没有。我仍然收到关键/按下/关闭事件。

如果我尝试使用textarea.focus()重新聚焦textarea,问题仍然存在。我找到的解决方法是使用window.focus()和调用textarea.focus()之后立即聚焦窗口。 这个问题是焦点是IE中一个非常昂贵的操作(没有开玩笑),因为我无法检测何时会发生这个问题,我必须继续以一定的间隔进行,这会严重影响我的应用程序的性能(涉及动画等)

我对其他浏览器使用完全相同的代码,并且没有这个问题。

1 个答案:

答案 0 :(得分:0)

将标识符更改为不像“textAreaAdv”那样的通用标识符,IE有时会对此单词感到困惑。