最新のWebブラウザでフォームの自動入力はどのように機能しますか?自動フォーム入力を実装するブラウザで使用される最も一般的な手法はどれですか?
- 編集 -
問題はオートコンプリートではなく、フォームのオートフィルです。これは、以前に入力された値だけでなく、入力するフィールドの意味と構造も考慮します。たとえば、Google Chromeの実装では、入力されたフィールドを解析して、タイプと構造を推測しようとします。または、少なくとも、上記のリンクされたコードから私が理解したことです。
最新のWebブラウザでフォームの自動入力はどのように機能しますか?自動フォーム入力を実装するブラウザで使用される最も一般的な手法はどれですか?
- 編集 -
問題はオートコンプリートではなく、フォームのオートフィルです。これは、以前に入力された値だけでなく、入力するフィールドの意味と構造も考慮します。たとえば、Google Chromeの実装では、入力されたフィールドを解析して、タイプと構造を推測しようとします。または、少なくとも、上記のリンクされたコードから私が理解したことです。
kmoteによるこの回答を見てください。
ハイライトは、ブラウザがフィールドのname
タグを見て、そこにどのような種類のデータが入るかについて知識に基づいた推測を行うことです(正規表現のマッチングはこれを行うための素朴な方法です)。Chromeはある種の標準化に取り組んでいるので、これは大失敗ではありません。
さまざまなテクノロジーやブラウザーがさまざまな方法を使用して、表示する内容と表示方法の両方を計算しますが、チェックアウトするソースは次のとおりです。
自分で実装する(または単に使用する)ことを検討している場合は、プラグインを確認することを強くお勧めします。
The first element of answer is simply the non standard HTML form's autocomplete
attribute that was introduced with Internet Explorer a few years ago.
Ironically, you can read a good history an introduction on mozilla site here: The autocomplete attribute and web documents using XHTML
この質問はかなり古いですが、2017年の回答が更新されました!
オートコンプリートをトリガーするには、名前を正しく付けるだけです。
次の答えは、ここからの私の元の答えからのものです:https ://stackoverflow.com/a/41965106/1696153
オートコンプリートを有効にするための公式の現在のWHATWGHTML標準へのリンクは次のとおりです。
Googleは、モバイルデバイスに適したWebアプリケーションを開発するための非常に優れたガイドを作成しました。自動入力を簡単に使用できるように、フォームの入力に名前を付ける方法に関するセクションがあります。モバイル向けに書かれていますが、これはデスクトップとモバイルの両方に当てはまります。
オートコンプリートを有効にする方法に関するいくつかの重要なポイントは次のとおりです。
<label>
すべての<input>
フィールドにを使用しますautocomplete
<input>
タグに属性を追加し、このガイドを使用して入力します。name
を付けますautocomplete
<input>
例:
<label for="frmNameA">Name</label>
<input type="text" name="name" id="frmNameA"
placeholder="Full name" required autocomplete="name">
<label for="frmEmailA">Email</label>
<input type="email" name="email" id="frmEmailA"
placeholder="name@example.com" required autocomplete="email">
<!-- note that "emailC" will not be autocompleted -->
<label for="frmEmailC">Confirm Email</label>
<input type="email" name="emailC" id="frmEmailC"
placeholder="name@example.com" required autocomplete="email">
<label for="frmPhoneNumA">Phone</label>
<input type="tel" name="phone" id="frmPhoneNumA"
placeholder="+1-555-555-1212" required autocomplete="tel">
<input>
タグに名前を付ける方法オートコンプリートをトリガーするには、タグの属性name
とautocomplete
属性に正しく名前を付けていることを確認してください。<input>
これにより、フォームのオートコンプリートが自動的に可能になります。必ず<label>
!この情報はここにもあります。
入力に名前を付ける方法は次のとおりです。
name
:name fname mname lname
autocomplete
:
name
(フルネームの場合)given-name
(名の場合)additional-name
(ミドルネームの場合)family-name
(姓の場合)<input type="text" name="fname" autocomplete="given-name">
name
:email
autocomplete
:email
<input type="text" name="email" autocomplete="email">
name
:address city region province state zip zip2 postal country
autocomplete
:
street-address
address-line1
address-line2
address-level1
(州または県)address-level2
(街)postal-code
(郵便番号)country
name
:phone mobile country-code area-code exchange suffix ext
autocomplete
:tel
name
:ccname cardnumber cvc ccmonth ccyear exp-date card-type
autocomplete
:
cc-name
cc-number
cc-csc
cc-exp-month
cc-exp-year
cc-exp
cc-type
name
:username
autocomplete
:username
name
:password
autocomplete
:
current-password
(サインインフォームの場合)new-password
(サインアップおよびパスワード変更フォーム用)