我有一个非常奇怪的场景。它可能是一个浏览器错误。问题是我无法创建一个用于重现它的最小方案。在实际应用中很容易重现,但我没有任何东西可以告诉你...
这是怎么回事:
我有一个包含许多文本框的Devexpress gridview。在blur
上,文本框发出一个AJAX请求,并在请求期间显示一个整页模态微调器(使用Devexpress弹出窗口实现)。
如果我通过单击另一个文本框退出文本框(提示一个AJAX请求和一个简短的微调器),下一个文本框将表现为其上的所有事件都被禁用。他们只是不触发。但是,如果我退出该文本框并重新聚焦它,所有事件都会正常工作。
我已经附加了多个事件(keydown
,keyup
,change
,blur
)以及多个方法(addEventListener
并以HTML格式内联) 。在重新聚焦文本框之前,没有任何作用。
即使更奇怪,IE的自己的小“x”标记也不像通常那样显示在文本框中。我的意思是这件事:
但是当事件被禁用时,它看起来像这样:
但是文本框本身仍然有效。我可以输入它就好了。只是没有事件,也没有“x”标记。取消对焦,重新聚焦,一切正常。
坦率地说,即使我愿意,我也不知道如何获得这样的效果(缺少“x”)。我知道它连接到AJAX请求和全屏阻塞微调器,因为如果我删除其中任何一个,效果就会消失。此外,这只发生在IE浏览器中 - Chrome工作正常。问题是 - 什么可以产生这个以及如何解决它?我目前最好的想法是制作一个不同的模态微调器(Devex弹出窗口似乎有很高的性能开销)和希望能让它消失。
我希望我可以为你提供一个干净的例子,但由于中间涉及一整套Devexpress和ASP.NET魔术,因此非常困难。