一、问题说明
如下图,系统登录页面有三个tab切换,每个tab切换里都有input输入框的type为text和password的组合,当登录的tab页输入账号密码保存到浏览器后,再次登录使用浏览器保存的密码时,密码同时回填到注册和试用的tab页。
二、问题原因
浏览器保存密码的机制为检索页面代码中type为password的input,保存此input及与此input相邻的上一个type为text的input的值,将两个input值作为一个账号、密码的组合,保存到浏览器。登录页面有三个text、password组合,那浏览器回填时,就会将账号密码同时填到这三个组合中,造成多余回填。
三、解决办法
网上找了好多解决办法,都没成功解决,最后综合各种解决办法,找到了实现方案,如下:
为使账号密码只回填到登录tab页,不对注册和试用tab页影响,应在注册和试用tab页打破浏览器的这种保存机制。 在密码框前添加空input标签,使浏览器认定这是一组账号密码组合,以消除对手机号码输入框的影响,但是空的input框不显示,使用定位的方法将其隐藏。 然后将密码输入框的type动态绑定inputType,设置初始值为text,当密码输入框获取焦点,再将inputType值改为password,避免浏览器自动保存机制的影响。
大家看不明白的随时问我,方法有点绕,而且也需要实践,实现思路就是避开浏览器保存账号密码的机制,希望能帮助到大家!