Firefoxが電話番号をユーザー名として記憶


8

私はすべての標準フィールドを含む登録ページを持っています。例えば、電話番号、電子メールなど。

電話とパスワードはタブで隣接している、つまり物理的に隣接していないが、タブで移動している場合は、名->姓->電子メール->電話->パスワードとなる。

何らかの理由で、ユーザーが登録するときにユーザー名とパスワードを記憶するように求めるプロンプトが表示されます(これは便利です)が、電話番号をユーザー名として保存しています。

人々がこれまでになく便利な電話番号とパスワードの組み合わせを覚えていることを示唆/決定しないようにするためのルールはありますか?

前もって感謝します

編集:

  • フォーム要素の名前は「電話」と「txtpassword」です。

  • メールアドレスとパスワードを覚えておきたいです。現在の状況を考えると、これは達成可能ですか?

  • 残念ながら、フォームフィールドを並べ替えることはできません。順序は上のタブに表示されています。


これは私にも起こります
マーク・ヘンダーソン

回答:


4

autocomplete = "off"を使用してオートコンプリートを無効にすると、Firefox(およびこの非標準属性をサポートする他のブラウザー)はこれらの値を保存しません。

<input type=text" name="dontsave" autocomplete="off">

編集:

表示されているのは、使用しているフィールド名が原因である可能性があります。オートコンプリートは、機能する一般的なユーザー名/ログインフィールド名を探します。電話番号フィールドが原因で、FirefoxがそれをプライマリログインIDフィールドであると認識している可能性があります。

編集2:

メールフィールドは電話フィールドの前または後ですか?後である場合、電話フィールドの前に置くことはできますか?もしそうなら、それは違いを生みますか?


OPがそのような動作を望んでいるとは思いません。さらに、autocompleteフィールドレベルでは使用できません。フォームレベルで使用する必要があります。<form autocomplete="false"...
たとえば

フィールドレベルで使用できます。完璧な例として、wachovia.comのログインフォームをご覧ください。
ジョンコンデ

@disgrunt-フィールド要素で常に使用します-特にCC番号/有効期限フィールド。
Mark Henderson、

2

一般的に、フィールドを並べ替えたりハックしたりしなければ、それは不可能です。あなたのusernameフィールドには、右のあなたの前にする必要がありpasswordFirefoxでのフィールド。

同じ問題がありましたが、電話ではなくです。何時間もの試行錯誤の末、この答えはそれを明らかにしました。Firefox(少なくとも現在のバージョンでは)はパスワードフィールドを探します。次に、その前のフィールドをユーザー名フィールドとして受け取り、これらの資格情報を保存するかどうかをユーザーに尋ねます。

ここでは、オートコンプリートは(主要な)問題ではありません。フォーム全体でオートコンプリートがオフになっていても、Firefoxは資格情報を保存するかどうかを尋ねます。


2

あなたはこのようなことをすることができます:

<input type="text" name="username" autocomplete="username">
<input type="default" name="email" autocomplete="email">
<input type="password" name="password" autocomplete="new-password">

現在のバージョンのFirefoxは、最初のパスワードフィールドを探します。そこからは、タイプの最初の前のフィールドを探しますtextか、emailユーザ名フィールドを見つけること。

したがって、無効なフィールドタイプ(これdefaultは有効なフィールドタイプではありません)を使用してそれをだますことができます。したがって、Firefoxを満たすためにフィールドを並べ替える必要はありません。ブラウザがフィールドタイプを知らない場合、通常のテキストフィールドを表示するだけです。

Safariは別のメカニズムを使用しており、問題は発生していません。フィールド名を見ていると思います。

オートコンプリート属性は、各フィールドが何に使用されるかについてのブラウザさらに指示を与えます。


1

以前にGoogle Chromeで同様の動作に気づきました。入力フィールドに付けられた名前は何ですか?ブラウザがname="signup[email]"1つの変数のすべてをサーバー側に渡すようなコードを使用すると、フィールドに問題が発生することがよくあります(PHPで非常に役立ちます)。

あなたはこの単純な形式を使用して試みることができる:<input name="username" type="text">emailし、passwordこれらの二つのフィールドの名前として。(注:フィールド名を変更する前にこの状況に遭遇したとき、私は実際にこれをテストしていません。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.