俺式ガジェット通信

欲しいモノ、手に入れたモノを「さらっと」メモ的な。スイーツもあり。

ユーザIDが変な所に入力されていて驚いている顔

autofill

【9/8追記しました】

【9/29追記しました】

ブラウザで、ユーザIDとパスワードをセットで記憶してくれる便利なやつ。

オートコンプリートって、自動補完って意味だから、自動入力とは違うと思っている今日この頃、如何お過ごしでしょうか。

 

ユーザー側としては便利な機能なんですけど、開発側は、困ってます。

以前、ダミーのテキストとパスワード欄を見えないように実装していたやつが、無視されるようになってますよ。

 

突然仕様変えるの勘弁して。

 

 

パスワード欄がdisableの場合はautofillされない模様。

 

そこで、

1.ダミーのテキスト欄とパスワード欄は意味が無くなったため削除。

2.パスワード欄はリードオンリーにする。

3.フォーカス時だけ入力可にする。

 

これで解決。

<input type="password" readonly onfocus="this.removeAttribute('readonly');">

 

前のは1年持ったけど、今回はどうでしょう。。

 

わたしはすぐ顔に出るので、机に鏡を置いています。

いつになく、しょっぱい顔w

 

【9/8追記】

しかし、本質はパスワード欄では無かった。。。

確かに、初動は自動入力されなくなった。

が、

パスワード欄をクリックすると、

「次のパスワードを使用する」というtipが出てパスワードが自動入力されるのと同時に、直前のテキストボックス(未入力の場合)にIDが自動入力されてしまう。

 

このテキストボックスにも、

パスワード欄と同様にリードオンリーと、属性変更を入れる。

 

すると、その前のテキストボックスにユーザIDが自動入力されてしまう。。。

 

つまり、パスワード属性の前にあるテキストボックスには、全てリードオンリーと属性変更を書いておく必要が出てきてしまった。

 

パスワード入力は、入力画面に作るのではなく、確認画面に入れておけば良かった。

 

【9/29追記】

<input type="password" autocomplete="new-password" ・・

とすると、(今日時点で)オートフィルされない事を確認(ie11、FF、chrome)。

昨年時点で、「対応ブラウザはない」とかと書かれているサイトがあるので、これを鵜呑みにするか、今、目で見えている現実を信じるか、、、

 

初期値text、setTimeoutを使って、setAttribute("type", "password");とか、こね回してみましたが

new-passwordにしたいなあ・・