一部のフォームでは、Chromeのオートフィルはクレジットカードのオートフィルでプロンプトを表示します。
編集:スクリーンショットを追加します。これは、ブラウザのオートコンプリートと同じではありません。以前に同じフォームに値を入力する必要はありません。

ブラウザがこれらをクレジットカードフィールドとして検出し、この動作をトリガーするように、HTMLフォームをどのように作成する必要がありますか?
Stripeフォームで動作する例が理想的です。
一部のフォームでは、Chromeのオートフィルはクレジットカードのオートフィルでプロンプトを表示します。
編集:スクリーンショットを追加します。これは、ブラウザのオートコンプリートと同じではありません。以前に同じフォームに値を入力する必要はありません。

ブラウザがこれらをクレジットカードフィールドとして検出し、この動作をトリガーするように、HTMLフォームをどのように作成する必要がありますか?
Stripeフォームで動作する例が理想的です。
この質問はかなり古いですが、2019年の回答が更新されました!
<input>正しく名前を付けるだけで、どのフィールドがクレジットカード情報用であるかをブラウザに伝えることができるようになりました。
次の答えは、ここからの私の元の答えからのものです: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 lnameautocomplete:
name(フルネームの場合)given-name(名の場合)additional-name(ミドルネームの場合)family-name(姓の場合)<input type="text" name="fname" autocomplete="given-name">name:emailautocomplete:email<input type="text" name="email" autocomplete="email">name:address city region province state zip zip2 postal country autocomplete:
street-addressaddress-line1address-line2address-level1(州または県)address-level2(街)postal-code(郵便番号)countryname:phone mobile country-code area-code exchange suffix extautocomplete:telname:ccname cardnumber cvc ccmonth ccyear exp-date card-typeautocomplete:
cc-namecc-numbercc-csccc-exp-monthcc-exp-yearcc-expcc-typename:usernameautocomplete:usernamename:passwordautocomplete:
current-password(サインインフォームの場合)new-password(サインアップおよびパスワード変更フォーム用)この回答https://stackoverflow.com/a/9795126/292060から、Chromeがフィールド名の正規表現パターンに一致しているか、フォームが次のようにx-autocompletetype属性を明示的に使用しているようです(この例では「somename」を使用しています)名前に一致する問題が混在しないようにするため):
<input type="text" name="somename" x-autocompletetype="cc-number" />
実際には、一致する名前とx-autocompletetypeの両方を選択できます。
<input type="text" name="ccnum" x-autocompletetype="cc-number" />
スクリーンショットに入力ボックスのビューソースがありますか?これは、名前またはx-autocompletetype属性で一致するかどうかを示します。
私がリンクした回答には、詳細情報へのリンクがいくつかあります。ここでは繰り返しませんでした。
他のいくつかのコメント:
Chromeがクレジットカード情報を保存するかどうかの質問をポップすることは知っていますが(私はしません)、それがどのように検出されたかに関係なく、Chromeがその質問をポップしているかどうかはわかりません。つまり、Chromeがクレジットカードの個別のフィールドを他のフィールドと一緒にオートコンプリートするのか、それともすべてをクレジットカードとして保存する必要があるのかはわかりません。
あなたの質問は、それを行うかどうかではなく、それをどのように行うかでした。しかし、あなたの質問のコメントから、私はあなたがクレジットカードのフィールドをオートコンプリートしたくないかもしれないことに同意します。個人的には、ブラウザでローカルであることを知っていても、それが発生すると戸惑うことになります(特に、CVVについてこのように感じ、報告すると驚くほどの抵抗があります)。ただし、顧客がそれを使用したいときにイライラする投稿があり、Chromeにクレジットカードが設定されていて、Webサイトがそれをブロックしています。
Chromeはautocomplete、自動入力の入力で属性を使用しています。これは、まだ使用されていない場合でも、将来的に他のブラウザで使用される可能性があります。
autocompleteの実際の使用法は、を指定してオートコンプリートが有効になっているかどうかを示すことautocomplete="off"です。しかし、クロムはオートフィルに同じものを使用します。
オートフィルとオートコンプリートは異なるため、混乱しないでください。
自動入力は、Chromeブラウザの自動入力設定に保存されているものからフォームに入力するためにChromeが使用するものです。
オートコンプリートは、すべてのブラウザが、入力時に値を提案することにより、同じフォームに以前に入力した内容を記憶するために使用するものです。したがってautocomplete="off"、入力で使用すると、ブラウザはこれらの値の提案を停止します。
ソリューションに戻って、オートフィルを機能させるにはcc-number、カード番号、cc-nameカード所有者名、cc-csccvc、および属性cc-expのカードの有効期限を使用しますautocomplete。クロムオートフィルと互換性のあるサンプルは次のとおりです。
<div>
<label for="frmNameCC">Name on card</label>
<input name="ccname" id="frmNameCC" required placeholder="Full Name" autocomplete="cc-name">
</div>
<div>
<label for="frmCCNum">Card Number</label>
<input name="cardnumber" id="frmCCNum" required autocomplete="cc-number">
</div>
<div>
<label for="frmCCCVC">CVC</label>
<input name="cvc" id="frmCCCVC" required autocomplete="cc-csc">
</div>
<div>
<label for="frmCCExp">Expiry</label>
<input name="cc-exp" id="frmCCExp" required placeholder="MM-YYYY" autocomplete="cc-exp">
</div>
現在Chromeブラウザにクレジットカードを保存している場合は、Run code snippet上のボタンをクリックしてみてください。Chromeのオートフィルが実際に動作しているのを確認できます。
ソース:https ://developers.google.com/web/updates/2015/06/checkout-faster-with-autofill
Chromeはプレースホルダーもスキャンします。
例:<input placeholder='dd-mm-yyyy'/>クレジットカードフィールドになるようにトリガーします。