Ubuntu 18.04およびChrome= 78を実行している私のメインコンピューターでは、このフォームは期待どおりに機能します。各フォームは個別に入力できます。
form {
border: solid 1px black;
padding: 1em;
display: inline-block;
}
form input {
display: block;
}
<form>
<label> name<input type = "text" name ="name" /> </label>
<label> phone<input type = "text" name ="phone" /> </label>
<label> email<input type = "text" name ="email" /> </label>
<button type="submit"> submit</button>
</form>
<form>
<label> name <input type = "text" name ="name"/> </label>
<label> phone<input type = "text" name ="phone" /> </label>
<label> email <input type = "text" name ="email"/> </label>
<button type="submit"> submit</button>
</form>
ただし、Chrome 81)-2番目のフォームで自動入力を選択すると、最初のフォームも入力されます。
これはバグですか、それとも自動入力の動作が正しいですか?
もしそうなら、これが文書化されているバグトラッカーはありますか?
HTMLフォームの名前付きフィールドは、ユーザーのプロファイルのブラウザによって値とともに保存されるため、自動入力のメカニズムを介して他のフォームで再利用できます。同じ名前のフィールドは、このWebサイトと、同じ名前のフィールドを持つ他のすべてのWebサイトでグローバルに使用されます。
フォームの自動入力 のChromium記事では、これは、これらの値をペアとして格納するSQLiteデータベーステーブルの構造から確認できます。テーブルの列はpair_idです、名前、値、カウント。ここでは、元のWebサイトと元のページのURLはここに表示されておらず、重要性がないことがわかります。
フォームフィールドの標準名を使用しました。これは、name、phone、emailなどのさまざまな標準で見つかります。一部のブラウザでは、プロファイル定義に値を入力することもできます。ブラウザは、これらの標準のフィールド名を使用して、すべてのフォームに自動入力します。ブラウザは、既知の名前を持つフィールドだけでなく、すべてのフィールド値を保存します。
同じ名前を2回使用しました。ブラウザはあなたのプロファイルに保存し、再利用します。自動入力時には、内部アルゴリズムに基づいて、同じ名前のフィールドに入力した値の1つだけが使用されます(最後に入力したものや最もよく使用されるものなど)。実際には、フィールドの両方の形式の値を同一にすることを宣言しました。これは、ブラウザーが要求どおりに同じ値でフィールドに自動入力することにより行いました。
使用したフィールド名には、他にもよく知られているバリエーションがあります。たとえば、使用したnameの他に、fname、mnameおよびlname(姓、名、姓)。
HTML5では form standard が拡張され、たとえば、勤務先の電話番号と自宅の電話番号を区別できるautocomplete
タグ属性が追加されました。例えば:
<p><label>Customer name: <input name="custname" required autocomplete="shipping name"></label></p>
<p><label>Telephone: <input type=tel name="custtel" autocomplete="shipping tel"></label></p>
<p><label>E-mail address: <input type=email name="custemail" autocomplete="shipping email"></label></p>
役立つリファレンス: