まず、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メソッドを使用してカスタムのバリデーションを実装する方法の一例です。他にも、正規表現やさまざまな条件を組み合わせてバリデーションを行うことも可能です。