標準の新しいパスワード フォームの 1 つを作成しようとしています。このフォームでは、新しいパスワードを 1 回入力してから、確認のために 2 回入力します。次のシナリオのように、これらのフィールドからぼかして一致しない場合は、両方が無効とマークされるようにしたいと思います。
- ユーザーは にパスワード
abcを入力し#newpassword1ます。 - ユーザータブから
#newpassword2. - ユーザーは にパスワード
defを入力し#newpassword2ます。 - ユーザーのタブが離れています。
#newpassword1検証により不一致が検出され、と の両方が無効としてマーク#newpassword2されます。
を使用してイベントのターゲットを無効としてマークできることは知っていますがe.target.setCustomValidity(...)、JavaScript のイベント モデルをよく理解していないため、イベント ターゲット自体の無効性に基づいて別の要素を無効としてマークする方法がわかりません。
これは、私が使用しようとしている (動作していない) コードの関連する抜粋です。
if ( $('#newpassword1').val() != $('#newpassword2').val() ) {
errorMessage = "The new passwords you've entered don't match.";
$('#newpassword1, #newpassword2').setCustomValidity(errorMessage);
}
これは直感的には機能するはずですが、もちろん機能しません。エラーは単純TypeError: $(...).setCustomValidity is not a functionです。
注意: 私はフィールドに赤いリングなどを追加する方法を尋ねているわけではありませvalidity.validんfalse。
これを行うことは可能ですか?
ありがとう!