[LayaAirIDE3]关于Input丢失焦点事件的bug

laya版本:3.1.0-beta.4    ReleaseTime:2024/01/04 15:50
浏览器:Microsoft Edge 版本 121.0.2277.83 (正式版本) (64 位)
 
发现当Input被删除时会莫名收到丢失焦点的事件,而这个Input根本没有获得过焦点,跟了下代码,发现当Input被undisplay时,不管原来是不是获得了焦点,都会执行失去焦点的逻辑。
 
我制作了一个绑定了某个数据的Input控件,当输入完毕,焦点离开的时候会自动回写输入的值到绑定的对象中,由于这个莫名的失焦点的事件,执行了不该执行的回写,而且Input在处理失去焦点的逻辑的时候会从一个静态的共用web输入元素中获取值,其实这时候根本没在输入,所以这个web输入元素是个空值,导致回写了错误的数据
QQ截图20240201170516.png QQ截图20240201170655.png
已邀请:

Sagasarate

赞同来自:

补充下重现细节,但某个input获得焦点后去隐藏其他Input,这些被隐藏的input就会发送失去焦点的事件,不管原来有没有获得焦点

1617866298用户

赞同来自:

给_focus一个默认值false可以解决问题,因为_focus没有给到默认值,导致undefined !== false 为true

Laya_XS

赞同来自:

可以先按上述开发者说的,临时给this._focus 一个默认值,判断下默认值是否已经被赋值,如果没有被赋值就不执行了。因为这里的代码年代有点久远,我们测试下改了后是否存在其他问题,如果没有问题的话,在新的版本里会做这样的修改,谢谢反馈问题。

要回复问题请先

商务合作
商务合作