Проверка JQuery не работает, как ожидалось

Я использую jQuery validate () и когда у меня просто есть:

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

это работает отлично. Но когда я пытаюсь добавить что-то вродеonkeyup или жеsubmitHandler:

$("#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:
        {
       ...
    }
}); 

он начинает не работать: 1) в этом случае, кажется, никогда даже не войти вsubmitHandler блок. То же самое, когда я пытаюсь продублироватьonfocusout функциональность внутриonkeyup блок. 2) когда присутствует второй блок, он портитonfocusout блок в том смысле, чтоonfocusout Блок будет работать в первый раз на любом заданном поле, затем не снова.

Я чувствую, что упускаю что-то очевидное, поскольку думаю, что делаю то, что написано в документации. Я хочу, чтобы проверка произошла на всех трех.onfocusout а такжеonkeyup в значительной степени одинаковы, ноsubmitHandlerдолжен сделать то же самое, плюс заполнить и показать ошибку div.

Что мне здесь не хватает?

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос