Valide o formulário duas vezes
Fatos de código:
Estou usando jQueryTambém usando o plugin jQuery ValidateRecursos 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 registro
test
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({...});