我有一个输入控件(文本框),它有一些与之关联的javascript事件(更改,按键,选择,单击)。第一次执行页面时,我在此输入控件中键入一些值,然后单击我的按钮。此按钮执行一些ajax代码,将一些信息发送到应用程序服务器,这没关系。此外,正确执行与文本框相关的事件(这些事件运行一些代码,用于检查哪些控件的值已更改,因此可以将这些更改发送到服务器)。
第二次在这个输入控件中键入一些值时,关联的事件没有正确执行,除非我首先在控件外部单击并再次单击控件内部,所以我可以键入一些值,然后关联TextBox事件被执行。
它只发生在IE7 +上,在其他浏览器上运行良好,如FF,Safari,Opera和Chrome。当按下我的按钮时,IE似乎没有改变TextBox的焦点,并且出于某种未知的原因,IE“忘记”了这些事件。
为了澄清,我的页面包含一些与Delphi编写的Application Server通信的HTML / JavaScript / AJAX代码。
如果我不清楚,请告诉我,谢谢你的时间。
- 杰克逊戈麦斯
答案 0 :(得分:0)
我添加了一个函数,将焦点放在我的输入元素的onBlur事件中的表单的下一个元素上,作为我的问题的黑客并解决它(IE似乎重新识别事件,如果焦点移动到另一个控制)。
现在如果我明确地将焦点重新设置在输入元素上(即使使用上面描述的函数调用),也会出现问题。
我真的不明白它为什么会发生,如果它是IE7 +的错误。
黑客行之有效,但如果我想把重点放在输入元素上,它就不会。
: - (
- 杰克逊戈麦斯
答案 1 :(得分:0)
如何移动焦点然后将其移回?有点像眨眼......