事象
autocompleteが入力履歴をドロップダウンで表示してくれたけど、それを押してもformに反映されない
そんな時は以下が原因かも。
原因
formに同じname属性のinput or select フィールドが存在している。
<input name="hoge" type="hidden" />
<input name="hoge" type="text" />
上記のような場合、hiddenの方だけがvalueが更新されて、autocompleteが反映されていないように見えます。
Edge独自のautocompleteスクリプトAutoformfill_ContentScript.js
が「同じnameのinputは先に存在するものだけをvalue更新する」ことが原因です。
対策
- autocompleteを効かせたいinputフィールドを複数存在させない。
- autocompleteを効かせたいinputフィールドを効かせたくないフィールドより前に配置する。
同じnameのinputが存在する方がおかしいと思うので、前者の方が良いかも。
所感
ソース読むのめっちゃ大変だった。
minify化されててよくわからんかった。