jQuery validate funktioniert nicht wie erwartet

Ich verwende jQuery validate () und wenn ich einfach habe:

$("#myForm").validate({
    onfocusout: function (valueToBeTested) {
        if($(valueToBeTested).hasClass('required')){
            if(this.element(valueToBeTested)){
                $(valueToBeTested).addClass('valid');
            } else{
                $(valueToBeTested).addClass('invalid');
            };
        };
    }
    rules:
        {
      ...(rules here)
    }
}); 

es funktioniert gut. Aber wenn ich versuche, so etwas wie @ hinzuzufügonkeyup odersubmitHandler:

$("#myForm").validate({
    onfocusout: function (valueToBeTested) {
        if($(valueToBeTested).hasClass('required')){
            if(this.element(valueToBeTested)){
                $(valueToBeTested).addClass('valid');
            } else{
                $(valueToBeTested).addClass('invalid');
            };
        };
    },
    submitHandler: function(i){
        var badForm = false;
        var errmsg = "<img src=\"invalid.png\"/><br/>";
        var $required_fields = $(".required");
        $required_fields.each( function(i) { 
            if(!($(i).valid())){
                errmsg += $(i).name + " is required<br/>";  
                badForm = true;
            }

            if(badForm){
                alert("bad");
                $('#errdiv').html(errmsg).show();
                window.scrollTo(0,0);   
            }
        });
    },
    rules:
        {
       ...
    }
}); 

it fängt an nicht zu funktionieren: 1) In diesem Szenario scheint es, dass Sie niemals das @ eingebesubmitHandler Block. Das gleiche gilt, wenn ich versuche, das @ zu dupliziereonfocusout Funktionalität innerhalb einesonkeyup Block. 2) Wenn der zweite Block vorhanden ist, stört er dasonfocusout Block in dem Sinne, dass dieonfocusout Block wird das erste Mal in einem bestimmten Feld funktionieren, dann nicht erneut.

Ich habe das Gefühl, dass ich etwas Offensichtliches vermisse, da ich denke, dass ich das tue, was in der Dokumentation steht. Ich möchte, dass die Validierung für alle drei erfolgt. Dasonfocusout undonkeyup sind ziemlich gleich, aber diesubmitHandler sollte das gleiche tun, plus füllen und zeigen die Fehler div.

Was fehle ich hier?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage