/ / Validação dinâmica de formulários (não apenas os campos) - jquery, validação, formulários, dinâmicos, jquery-validate

Validação de Formulário Dinâmico (não apenas os campos) - jquery, validação, formulários, dinâmicos, jquery-validate

Eu estou tentando descobrir como fazer validação de formulário dinâmico com jquery e plugin de validação do jquery. Eu sou bastante novo para jquery e JS em geral.

Eu descobri como obter a validação paraocorrer quando eu clicar em enviar (usando o submitHandler). No entanto, preciso enviar POST via ajax, não da maneira nativa. Então, eu preciso evitar o defeito, e eu não pareço ser capaz de fazê-lo. O caminho nativo para mim é quando você clica em enviar, a ação ocorre. Eu não quero que a ação ocorra como eu estou tentando fazer isso via $ .ajax ({...}) ;.

Se eu colocar a validação no $ ("# form").Ao vivo ("click", função (e) {...}), agora posso postar via ajax, no entanto a validação não ocorre. Eu tenho tudo dentro do $ (document) .ready (function () {. ..} ;.

Como posso obter um formulário dinâmico validado dentro dolive ("click") método? Eu tentei chamar validate () quando eu adiciono o formulário.Adicionar um formulário inteiro através de um clique em um objeto e acrescentar a um objeto filho.

De qualquer maneira (no submitHandler, ou usando ao vivo ("clique")) está bem por mim, mas eu não consigo descobrir de qualquer maneira.

Espero que seja suficiente informação, mas se não, eu ficarei feliz em fornecer mais. Um pequeno trecho do submitHandler abaixo.

   $("#form-" + $(this).attr("id")).validate({
submitHandler: function(form) {
this.preventDefault();
// My ajax function below (submitForm);
submitForm(this);
alert("wee");
}

Respostas:

0 para resposta № 1

Você já deu uma olhada Plugin de formulário jQuery (ajax)?


2 para resposta № 2

Você não está usando o submitHandler corretamente. Tente isto:

 $("#myform").validate({
submitHandler: function(form) {
form.submit();
}
});

Em seguida, substitua a função de envio para o formulário:

$("#myform").submit(function() {
$.post(url, $(this).serialize(), function(response) {
//do something with the AJAX response
});

return false;
});

O retorno falso; no final impedirá o envio do formulário padrão.