web-dev-qa-db-ja.com

間違ったフィールドに自動入力する

私はいつも美しく働いているチェックアウトページのあるサイトを持っています。
最近、オートフィルを使用して情報を入力する顧客は、自分のメールアドレスを会社のフィールドにダンプします。それに影響を与える可能性のある変更はありません。これの一番下に到達するために使用できる他のツールは何ですか?

33
Haim

何が原因で問題が発生したのかはまだわかりませんが、これを見た人は、自動入力で埋められないようにreadonlyフィールドを作成することになりました。次に、フォーカスが合うとアクティブになり、ユーザーが手動で入力できるJSを作成しました。

<input type="text" name="company" readonly="" onfocus="this.removeAttribute('readonly');">

7
Haim

同様の問題に直面し、オートコンプリートプロパティはこの状況で使用されるものです

<input type="text" name="fooBar" autocomplete="organization" > 

htmlフォーム入力のオートコンプリート/オートフィルタグの包括的なリスト

5
catalint

OPの問題は解決された可能性があります(または、最近の更新で再び戻ってきた可能性があります!)が、2019年初頭の時点で、show-autofill-type-predictionsフラグchrome://flags、Chromeを再起動してから、問題の入力のタイトル(ツールチップテキスト)を確認します。フィールドの「タイプ」を推測するためにどの情報が使用されているか、およびどのような種類の保存データを使用して入力する必要があるかがわかります。

4
Coderer

「名前」フィールドの下に「会社」フィールドがあるという同様の問題が発生しました。その会社の分野は、誕生年で自動入力されました。 「名前」フィールドのすぐ下に「生年月日」フィールドグループを表示していた同じサイトの別のフォームから取得されました。だからchromeはその順番でオートフィル値を保存しました。2番目のフォームフィールドの順序を変更することになりました(残念ながら、それが最善でした)。

3
Maxime Brehin

入力タグに名前を追加する必要があります。ブラウザは名前を使用して、フィールドに入力する情報を識別します。必要に応じて、IDとプレースホルダーにも同じものを使用できます。これを試して:

<input type="text" name="company" id="company" placeholder="company">

それでも機能しない場合は、その特定のフィールドの自動入力を無効にすることを検討してください*:

<input type="text" name="company" id="company" placeholder="company" autocomplete="off">

*同じオートコンプリートプロパティとオフ値を使用して、フォーム全体のオートフィルをオフにすることもできます。

2
Yosef Sahler

ほとんど見えない入力プロキシのトリック

Chrome 72 ...で同じ問題が発生しました。名前のみを完全に考慮せず、読み取り専用ではない限り、あらゆる種類のフィールド(選択または入力)を埋めたいだけでした。オートコンプリートなどの属性)、以前に保存した可能性のあるあらゆる種類の値。

  • changeイベントをリッスンするか、オートフィルが正しくないためにエラーメッセージをトリガーする可能性のある入力の検証があるため、フィールドにデータが入力されないようにすることができます。
  • オートフィル値を破棄し、表示さえしないようにしたいだけです(javascriptの実行前でも)。

ブラウザに入力する別のフィールドを提供するだけで、他のフィールドの下に非表示にして表示することはほとんど不可能にします。

    <input type="text" id="autofill-if-you-dare" style="position: absolute; z-index: -1; top: 20px; width: 0; height:0" />

注:後でJavaScriptで非表示または削除することはできますが、Chromeは表示されているフィールドのみに入力されるため、自動入力が完了する前に非表示にしないでください。他の回答では、イベントをトリガーしないため、ポーリングを使用してトリガーする必要があります。

1
Fab

最近、ショッピングカートページでchromeから表示され、サイトのユーザー名とパスワードが保存されているときに、このような問題が発生し始めました。 Chromeは、ユーザー名の値を不可解に数量ボックスに入れます。多くの髪を引っ張った後、ページに隠されたユーザー名とパスワードのフィールドがあることに気付きました。これらは、表示されると正しく自動入力されます。非表示の場合、chromeは数量入力ボックスを自動入力します。これらのコントロールでautocomplete = "username"およびautocomplete = "current-password"を設定することで、問題はなくなりました。

0
RobinZ

最近、この問題に直面しています。具体的にはクロムです。のようだ

autocomplete="off"

chromeにもう拾われていません。次の情報源が参考になりました。

Chromium(多くのChromeが基づいているものだと思う)には、Chromeのオートコンプリートで入力するフィールドを見つけるときに使用される正規表現を示す次のコードがあります。

https://cs.chromium.org/chromium/src/components/autofill/core/common/autofill_regex_constants.cc?sq=package:chromium&g=0&l=262

私が見つけた他の唯一の仕事は、これらの規則に従うことだと感じています: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete

または、少なくとも、上記のリストとは十分に似ていない属性を指定して、オートコンプリート機能で選択されないようにしてください。

0
AC007