HTML5のpassword要素でsetCustomValidityメソッドを使用する方法


まず、setCustomValidityメソッドは、フォームのバリデーションが失敗した場合に表示されるエラーメッセージを設定するために使用されます。このメソッドは、HTML5のバリデーション制約を超えた独自のバリデーションを実装するために便利です。

以下は、setCustomValidityメソッドを使用してパスワードのバリデーションを行う例です。

<form>
  <label for="password">パスワード:</label>
  <input type="password" id="password" required oninput="checkPasswordValidity(this)">
  <input type="submit" value="送信">
</form>
<script>
  function checkPasswordValidity(input) {
    var password = input.value;
    if (password.length < 8) {
      input.setCustomValidity("パスワードは8文字以上で入力してください。");
    } else {
      input.setCustomValidity("");
    }
  }
</script>

上記のコードでは、パスワードの入力欄にoninputイベントリスナーを追加し、入力内容をチェックするためのcheckPasswordValidity関数を呼び出しています。この関数では、入力されたパスワードの長さが8未満の場合にカスタムのバリデーションメッセージを設定し、それ以外の場合は空のメッセージを設定しています。

このようにして、ユーザーがパスワードを入力する際に、設定したバリデーションメッセージが表示されるようになります。

これは、HTML5のpassword要素でsetCustomValidityメソッドを使用してカスタムのバリデーションを実装する方法の一例です。他にも、正規表現やさまざまな条件を組み合わせてバリデーションを行うことも可能です。