Valide o formulário duas vezes

Fatos de código:

Estou usando jQueryTambém usando o plugin jQuery Validate

Recursos do meu formulário:

Eu tenho um formulário que é dividido em duas partes. É tudo uma forma, mas quebrada por dois grandes divsA carne do formulário (primeiro nome, sobrenome, etc) é a primeira parte.Eu também tenho uma tabela dinâmica na primeira parte do formulário, para que as pessoas possam se registrar e até 20 outras pessoas.
Finalmente, há um código de registro. Estes códigos são utilizáveis ​​apenas até 20 vezes. Significado se uma pessoa se registra e 19 outras pessoas com o código de registrotest então é isso, o teste não é mais um código de registro utilizável.

Problema:

Digamos que o código de registrotest já foi usado 18 vezes. Então o validador funciona bem se eles se registrarem e mais duas pessoas, aparece uma mensagem dizendo que o limite foi excedido.Contudo se eles digitarem o códigotest PRIMEIRO e depois adicione as duas pessoas, valida o formulário para true e segue em frente. Aqui está o código para o código de registro dentro das regras para o validador:

regis_code: {
    required: true,
    reg_code: true,         
    remote: { 
        url: "Private/Code_checker.php", 
        data: {
            num: function() {
               return num_rows;
            },
            },
        async: false 
    }
}

Então, o script PHP funciona muito bem. O que eu preciso fazer é validar enquanto eles estão preenchendo o formulário, mas também validar antes de enviar. O outro problema é que o botão da primeira parte do formulário não é um botão de envio, é apenas um botão que oculta a div atual e mostra a próxima div (parte 2) do formulário. Como posso validar enquanto eles estão digitando e também validar quando clicam no botão para ir para a parte 2?

Aqui está o código do botão junto com o material do validador:

$('.button2').click(function() {
    if(val.form()) {
        $('.box').animate({ height:520, left: '-=50', top: '+=30', width: '-=350' }, 750);
        $('div.box label').animate({width: '-=100%'},500);
        $('#part1').fadeOut('slow', function() {
            $('#part2').fadeIn('slow');
        });
        $('#PaySubmit').fadeIn('slow');
    }
});
var val = $('#everything').validate({...});

questionAnswers(2)

yourAnswerToTheQuestion