如果控件没有失去焦点,IE7 +不会执行事件

时间:2010-01-05 21:14:47

标签: javascript ajax internet-explorer

我有一个输入控件(文本框),它有一些与之关联的javascript事件(更改,按键,选择,单击)。第一次执行页面时,我在此输入控件中键入一些值,然后单击我的按钮。此按钮执行一些ajax代码,将一些信息发送到应用程序服务器,这没关系。此外,正确执行与文本框相关的事件(这些事件运行一些代码,用于检查哪些控件的值已更改,因此可以将这些更改发送到服务器)。

第二次在这个输入控件中键入一些值时,关联的事件没有正确执行,除非我首先在控件外部单击并再次单击控件内部,所以我可以键入一些值,然后关联TextBox事件被执行。

它只发生在IE7 +上,在其他浏览器上运行良好,如FF,Safari,Opera和Chrome。当按下我的按钮时,IE似乎没有改变TextBox的焦点,并且出于某种未知的原因,IE“忘记”了这些事件。

为了澄清,我的页面包含一些与Delphi编写的Application Server通信的HTML / JavaScript / AJAX代码。

如果我不清楚,请告诉我,谢谢你的时间。

- 杰克逊戈麦斯

2 个答案:

答案 0 :(得分:0)

我添加了一个函数,将焦点放在我的输入元素的onBlur事件中的表单的下一个元素上,作为我的问题的黑客并解决它(IE似乎重新识别事件,如果焦点移动到另一个控制)。

现在如果我明确地将焦点重新设置在输入元素上(即使使用上面描述的函数调用),也会出现问题。

我真的不明白它为什么会发生,如果它是IE7 +的错误。

黑客行之有效,但如果我想把重点放在输入元素上,它就不会。

: - (

- 杰克逊戈麦斯

答案 1 :(得分:0)

如何移动焦点然后将其移回?有点像眨眼......