0
$("input[type=text]").on('focusout', function(){
    if($(this).each().hasClass('valid')){
        alert('go');
    }
});

ユーザーがすべてのフィールドを埋め終わったら、フィールドが私の検証に合格したかどうかを確認したいのですが、それぞれに「有効」のクラスがあるかどうかを確認します..しかし、コンソールでこのエラーが発生しました

Uncaught TypeError: Cannot call method 'call' of undefined 
4

1 に答える 1

3

.eachメソッドは jQuery コレクションを反復処理するために使用されますが、その使用方法が間違っています。すべての入力が次のクラスを持っていることを確認したい場合validは、入力コレクションの長さとフィルター処理されたコレクションの長さを比較できます.valid。または使用.not()方法:

var $inputs = $("input[type=text]");

$inputs.on('blur', function(){
    if ( $inputs.length === $inputs.filter('.valid').length ) {
       // all fields are valid
    }
});

使用.not()方法:

if ( !$inputs.not('.valid').length ) {
   // all fields are valid
} else {
   // at least one of them is not valid
}
于 2013-09-12T10:07:03.050 に答える