最近遇到一个安卓ios移动端失焦后的问题,刚开始排查的重点在于失焦事件和按钮的点击事件冲突问题上,但是试了几种方法并没有解决,但是有在前几篇中总结这个问题的解决。
我的业务逻辑是在输入框失焦后对输入的数字格式化,最后点击确定事件,但是输入5000,最后会变成50,问题出在了两个方面
1.iOS在收起键盘的时候会触发失焦事件,但是和版本或者型号有关,mini上出现的,因为收起键盘和失焦都触发了失焦事件,就相当于一次失焦触发了两次方法,但是在2019和安卓型号的版本都不会在键盘收起的时候触发失焦事件
2.处理格式化的方法有问题
parseFloat(value).toFixed(2)
parseFloat在转参数格式的时候,会先将参数转换为 number 类型,然后对该数字进行解析和处理。问题就出在了这里
当第一次50000后格式化为50,000,第二次那么先转number类型时Number(50,000)就会变成50,就导致了问题