A form input that lets the browser validate email syntax automatically and pops up an email‑optimized keyboard on mobile devices.
<input> 要素の type 属性に email を指定すると、ブラウザは「メールアドレス専用」の入力欄として扱います。
この指定だけで――
HTML
<label for="userEmail">メールアドレス:</label>
<input id="userEmail" name="email" type="email" required autocomplete="email">
type="email" でブラウザがメール形式を自動判定required で未入力をブロックautocomplete="email" で端末の候補を活用invalid イベントでカスタムメッセージを設定し、ユーザーに具体的な入力指示を出すと UX が向上する。pattern=".+@example\.com"。inputmode="email" で @ や . 付きレイアウトが出現し、入力効率が向上。autocomplete="email" とし、同一フォームで username/email を正しく組み合わせると多段フォームでも入力がスムーズになる。<datalist> と組み合わせ、定型メールアドレス候補をプルダウン表示。name属性は入力欄に名前を付ける属性ですが、form要素でデータが送信される際、name属性で指定した名前と、入力された値が一組になって送信されます。value属性を指定する場合には、その値には妥当なメールアドレス(もし、multiple属性を指定している場合には、半角カンマ( , )区切りの妥当なメールアドレスのリスト)を指定する必要があります。width: 30ch; や clamp())で置き換えることを推奨。ValidityState.typeMismatch が trueinvalid で任意の処理をフックJavaScript
const emailInput = document.querySelector('#userEmail');
emailInput.addEventListener('invalid', e => {
e.target.setCustomValidity('正しいメールアドレスを入力してください。');
});
emailInput.addEventListener('input', e => {
e.target.setCustomValidity('');
});