標準の新しいパスワードフォームを作成しようとしていますが、新しいパスワードを1回入力してからもう一度入力してください。HTML5/JS/jQuery:入力が無効で、異なる(任意の)要素に無効なマークを付ける
- ユーザーは
#newpassword1
にパスワードabc
を入力:あなたは離れてこれらのフィールドからぼかす一度ように一致していない場合、私は両方のは、次のシナリオのように、無効とマークされます、それをしたいと思います。 - ユーザータブを
#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
を持っている)無効になりたいわけではありません。
これは可能ですか?
ありがとうございます!
はなく、jQueryオブジェクト、('に.getを試してみてください)。setCustomValidity(にErrorMessage) ' – Ohgodwhy
私は' $( '#信じますnewpassword1、#newpassword2 ')[0] .setCustomValidity(errorMessage); 'も動作します – tymeJV
あなたのおかげで! – kine