フォーム検証

フォームはユーザーから入力を収集し、ユーザーはフィールドを空白のままにしたり、メールアドレスを誤入力したり、数字が必要な場所に文字を入力したりします。そのようなデータがコードに到達するのは望ましくありません。送信前に、ブラウザは多くのことをチェックできますが、各フィールドが何を期待するかを説明した場合のみです。その説明はHTMLに直接書き込まれ、この章はそれをどのように書くかについてです。
必須フィールドと入力タイプ
追加できる最も簡単なチェックは、フィールドが満たされていることを述べることと、どの種類の値がそれに属するかを述べることです。
入力に**required**という単語を追加すると、ブラウザはそのフィールドに何かが入るまでフォームの送信を拒否します。これを起こすためにコードを書く必要はありません。属性が指示です。
<input type="text" name="full_name" required>もう半分はtype属性です。これはブラウザに値の形状を伝え、ブラウザがそれをチェックします。type="email"を使用するとブラウザはメールアドレスのような値を確認します。type="number"を使用すると数字のみを受け入れます。日付用のタイプ、ウェブアドレス用のタイプなど、さらに多くのタイプがあります。
医者のオフィスのフォームのようなものだと考えてください。いくつかのボックスは「記入必須」と表示されており、日付のボックスには既に日、月、年のための小さなスロットがあります。紙は、あなたが何かを書く前に、どこに何が行くかを伝えています。
両方の属性を使用する小さなサインアップフォームは次のとおりです:
<form>
<label>
メールアドレス
<input type="email" name="email" required>
</label>
<label>
ウェブサイト
<input type="url" name="website">
</label>
<button>サインアップ</button>
</form>メールフィールドは入力される必要があり、メールのように見える必要があります。ウェブサイトフィールドはオプションですが、誰かが何かを入力した場合、ウェブアドレスのように見える必要があります。ブラウザはボタンが押された時点で両方をチェックします。
requiredを置くと、ブラウザは空のものを通さないでしょう。emailやnumberのようなtypeを設定すると、値が正しい形状であることをチェックします。フィールドに一致するタイプを選択すると、無料でチェック機能が得られます。 制約属性
「満たされている」と「正しいタイプ」を超えて、多くの場合、制限が必要です。少なくともこの長さの値、それ以上の数値、特定の形式のコード。一握りの属性がこれをカバーしています。
フィールドが受け入れるもの、制限を設定できます。始めるのに役立つ2つ:
<input type="text" name="username" maxlength="20">
<input type="number" name="quantity" min="1" max="10">maxlength="20"はフィールドが20文字を保持したら停止します。minとmaxは許可される最小および最大数を設定します。ブラウザはユーザーをこれらの範囲内に保つため、自分自身でチェックする必要はありません。
混乱の大部分を保存するルール:patternは値の一部ではなく、値全体に一致する必要があります。
<input
type="text"
name="product_code"
pattern="[A-Z]{2}-[0-9]{3}"
title="2文字、ハイフン、3桁(例:AB-123)"
required
>maxlengthは文字数を上限し、minとmaxは数値を囲みます。ブラウザはユーザーをこれらの範囲内に自動的に保つため、書く必要があるチェック機能が多くあります。 ネイティブ検証フィードバック
ルールを宣言することは物語の半分です。もう半分は、値が何かを破った時にユーザーが見る内容です。
誰かが送信ボタンを押してフィールドが間違っている場合、ブラウザは送信を停止し、問題のある最初のフィールドの横に小さなメッセージを表示してから、カーソルをそこにジャンプさせます。このメッセージを構築する必要はありません。ブラウザはそれを書き、訪問者自身の言語で自動的に表示します。
したがって、requiredメールフィールドが空白のままだと、「このフィールドに記入してください」のようなメッセージが生成され、フォームは修正されるまで送信されません。
JavaScriptがまだ必要な場合
ネイティブ検証は、1つのフィールドをその独自のルールに対してチェックします。実際のチェックの多くはその形状に適合しません。そこがJavaScriptが出番を迎える場所です。
ブラウザが自分自身でチェックできないことがあります。2つのパスワードフィールドが互いに一致しているかどうか。ユーザー名が既に他の誰かに採取されているかどうか。割引コードが本物かどうか。これらのいずれも1つのフィールドの形状についてではないため、属性はなく、チェックを行うために来るJavaScriptです。
これはHTMLの失敗ではありません。組み込みチェックはコードなしで一般的なケースを処理し、JavaScriptは残りを処理します。

