今天我加班遇到了一个特别神奇的东西,同一个输入验证码,我同事的没问题,但我测试验证码就是一直是没有输入验证码.
1.首先我们怀疑是手机型号的问题,但我用其他人的手机同样复现了这个问题.
2.之后怀疑是手机输入法的问题,但对照测试后发现都是使用的同一输入法.
排查陷入僵局...
3.反复测试后,我们发现我使用的是手输的方式,其他同事使用的是提示点选的方式,经常测试后的确是不同输入方式导致.初步怀疑是大小写字母切换数字的时候导致.
4.修改代码,将input框的文字输出到日志,我们神奇的发现输入字符后并没有日志输出...
无意中点击了一下页面,input框中的字符输出到日志中了.好了,发现了问题所在,只有当input框失去焦点后,才会进行赋值,这也解释了我手输与同事提示点选的区别.我手输过程中input框一直没有失去焦点,所以没有赋值,但同事使用提示点选,在点选的那一刻其实input框失去了一次焦点,赋值字符后,又重新获得焦点,所以赋值并没有问题.
到这里已经发现了问题,剩下的解决就很简单了,实时监听键盘输入或者在提交前失去焦点都可以