360安全浏览器表单自动填值问题

976 阅读1分钟

问题背景:

此问题发生2019去年 ....,项目使用antd,当时是因为表单不规范 ,单独的签名组件(签名组件要给很多套表单使用)没有用Form包裹 ,导致签名时在chrome浏览器会有用户名被填充到用户未填写的Input内。


此时签名数据,备注内的数据就会被意外保存 ...

第一次解决:

给签名组件包裹antd的Form,成功解决大部分浏览器。


然而过了一段时间,发现线上数据又出现了备注框里被保存了用户名。

最终解决:

因为开始无法复现此问题 ,后面发现客户使用的是360安全浏览器 ,故下载这个浏览器,才得以再次复现 。

在360安全浏览器上,有个【登录管家】,一旦被选中,就会把已保存的密码自动填充到表单内type为password的input框内 。因为没有对应type为text的input框 ,所以用户名会自动填充到外面主题表单(如图1)。


解决方案: 在Form内增加一个type=text的input框 ,并隐藏 ,从而解决此问题。



总结:

我尝试过动态设置type="password"的input的readOnly属性,也无法解决此问题 。故选择了增加一个多余的input,来针对360解决此问题 。