已经有个问题,困惑了很久很久....

问题如下,当我点击role下拉框时,竟然给我弹出了 用户名的主动填充

这他妈真恶心,我点的仅仅是个 select,并非用户名区域

而后网上找了很多办法,不外乎什么批改 autocomplete为off,什么display:none,而后再显示等等等,其中大量的帖子都是复制,粘贴他人的货色。没有一句本人的货色。

起初我发现,当我给一个input="text"设置 placeholder为邮箱emaile-mail这三个关键字时,点击input,也会呈现主动填充

如果外面没有蕴含这三个关键字,则不会呈现主动填充

事实上,这个个性是浏览器的,它是通过判断placeholder中的关键字去找的。然而找的不是咱们网页中的用户名和明码。而是浏览器的地址和其余信息中的邮箱

如果没有增加地址和邮箱,那么即便设置 placeholder为"email"也不会呈现填充

除非新增个地址

来了

那么和咱们平时看到的用户名明码的填充和邮箱填充有什么区别呢?

用户名明码的填充是在“明码区域”

并且在以后“ip和端口”下曾经有之前保留过的用户名和明码,才会呈现主动填充,

浏览器找明码区域很容易,只须要晓得哪个input的type是password即可,那么它怎么晓得谁是用户名呢?

原来浏览默认会去找 离type=“password”最近的上方的那个域为“用户名”,进行填充,即便那个不是一个input,而是个select,只有一获取焦点,就呈现 "用户名填充区域"。

那么问题来了,我不想让点击select被填充(因为这真的很恶心),该怎么做呢?

在我看来,有几下几个办法:

  1. 调整程序,把真正的用户名放到password的上方(能够跟产品聊聊,如果程序无所谓的话)
  2. 禁用掉浏览的主动填充性能

但这个只能依赖于用户,用户不禁用,你也没方法

  1. 将password拆分到另外一个 form 中,这样,一个form放一般的input,另一个form放password,两个form中的域互不干涉,点击input就不会主动填充了
  2. 在password上方再新增一个空的input type="text",并将其暗藏掉