Jump to content


Photo

[resolvido]obriga Preenchimento Dos Campos(jquery Validate)


  • Faça o login para participar
16 replies to this topic

#1 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 17/06/2009, 12:35

Pessoal to com o seguinte problema uso os plugins
jquery.validate.js
jquery.maskedinput-1.2.2.js
jquery-1.3.2.min.js

e ta acontecendo o seguinte

eu tenho varios campos no formulario como

Tipo Pessoa
CNPJ
CPF
Fone
Cep
Bairro
Cidade
Estado
Email
Confirmar e-mail
Senha
Confirmar senha


onde apenas o tipo pessoa é uma radio e o resto é tudo input

e eu sou obrigado a preencher todos os campos para poder fazer o cadastro
mas o probelam é que eu to fazendo assim quando a pesso da um clikc em TIPO DE PESSOA e ela é fisica eu mostro o campo CPF e se ela escolhe TIPO PESSOA juridica o campo CPF some e aparece o CNPJ
só que na hora de fazer o submit do cadastro ele não deixa pq ele entende que o cpf tem q ser preenchido apesar de ele não aparece na tela

alguem pode me ajudar com isso ?

// QUANDO O DOCUMENTO ESTIVER PRONTO
$(document).ready(function(){
$("#divf").hide();
$("#divj").hide();
// Campos (required) são campos obrigatórios
//Campos (minlength) servem para definir o quanto de caracters tem q ter
$("#f").click(function(){
$("#divf").show()
$("#divj").hide()
});
$("#j").click(function(){
$("#divj").show()
$("#divf").hide()
});

$("#meuForm").validate({
rules: {
pessoa: {required: true},
cpf: {cpf: true},
cnpj: {cnpj: true},
razaosocial: {required: true, minlength: 9},
cep: {required: true, minlength: 8},
email:{ required: true, email: true },
confemail:{ equalTo: '#email'},
senha: {required: true, minlength: 6},
confsenha: {required: true, equalTo: '#senha'},
situacao: {required: true}
},
messages: {
pessoa:{ required: "informe a pessoa"},
cpf: {cpf: 'CPF inválido'},
cnpj: {cnpj: 'CNPJ inválido'},
razaosocial: {required: 'informe o Nome / Empresa', minlength:'minimo de ' + 9 + ' caracteres' },
cep:{ required: "informe o cep"},
email:{ required: "informe o e-mail",email: "digite um e-mail válido"},
confemail:{ equalTo: "email não confere"},
senha:{ required: "informe a senha", minlength:'minimo de ' + 6 + ' caracteres' },
confsenha: { required: "informe a confirmação de senha", equalTo: "senha não confere" },
situacao: { required: "informe a situação" }
},

submitHandler:function (form) {
// se os campos forem preenchidos corretamentes então eu to redirecionando a pagina para o GOOGLE
document.formulario.action ='../php/cadastrar.php';
document.formulario.submit();
}
});// Fecha $("#meuForm").validate({
});// Fecha $(document).ready(function()


e eu já tentei fazer um IF dentro do $("#meuForm").validate({
mas ele não deixa diz que é um comando invalido só aceita if fora do $("#meuForm").validate({ pq se eu consegui-se fazer um IF dentro de meuForm eu consiguiria fazer com que ele só obriga-se o cadastro de cnpj: {cnpj: true} se a opção juridica fosse selecionada

Edição feita por: Édipo Costa Rebouças, 28/07/2009, 12:59.


#2 Édipo Costa Rebouças

Édipo Costa Rebouças

    Veterano

  • Ex-Admins
  • 1079 posts
  • Sexo:Masculino
  • Localidade:Brasil - São Paulo

Posted 18/06/2009, 23:03

olha amigo, você deve estar usando um extra pack -para validar cpf e cnpj correto? eu achei uns com uma falha na implementação que não permitiam fazer a sintaxe correta... mas você teria que fazer assim:


cnpj: {cnpj:"#idDoRadio:checked" },
cpf: {cpf:"#idDoRadio2:checked" },

no meu extra tem implementação de checked,mass essa técninca não funciona pois os plugins do extra não implementarão, se vc fizer no riquered por exemplo, funciona....

ai você pode fazer assim:
cnpj:{ required: "#IDRAdio1:checked", cnpj:  true }
cpf:{required: "#IDRAdio1:checked", cpf: true }

deberiafuncionar,mas os plugins de cpf e cnpj que achei na net não funcionaram.... falharam na implementação... eu modifiquei um para o segundo método funcionar:

segue no codebox

$.validator.addMethod(  "checked",  function(value, element){    var inp_name=($(element).attr('name'));    if($('input[name="'+inp_name+'"]:checked').length){      return true;    }else{      return false;    }  },  "Escolha uma opção");$.validator.addMethod(  "dateBR",  function(value, element) {	var val_exp=value.split('/');  	if(val_exp.length==3){      var ano=val_exp[2];      var mes=val_exp[1];      var dia=val_exp[0];      if((ano>=1000)&&(ano<10000)){        if(((mes=='01')||(mes=='03')||(mes=='05')||(mes=='07')||(mes=='08')||(mes=='10')||(mes=='12'))&&(dia.match(/^(0[1-9]|[1-2][0-9]|3[0-1])$/))){          return true;        }else if(((mes=='04')||(mes=='06')||(mes=='09')||(mes=='07')||(mes=='08')||(mes=='11'))&&(dia.match(/^(0[1-9]|[1-2][0-9]|30)$/))){          return true;        }else if((mes=='02')&&(dia.match(/^(0[1-9]|1[0-9]|2[0-8])$/))){          return true;        }else if((mes=='02')&&(dia=='29')&&((ano%400==0)||((ano%4==0)&&(ano%100!=0)))){          return true;        }else{          if($(element).val().length==0) return true; else return false;        }      }else{        if($(element).val().length==0) return true; else return false;      }    }else{      if($(element).val().length==0) return true; else return false;    }  },  "Data inválida");$.validator.addMethod(  "cpf",  function(value, element){    var cpf=value;    var numeros, digitos, soma, i, resultado, digitos_iguais;    digitos_iguais = 1;    if (cpf.length < 11) if($(element).val().length==0) return true; else return false;;    for (i = 0; i < cpf.length - 1; i++){      if (cpf.charAt(i) != cpf.charAt(i + 1)){        digitos_iguais = 0;        break;      }    }    if (!digitos_iguais){      numeros = cpf.substring(0,9);      digitos = cpf.substring(9);      soma = 0;      for (i = 10; i > 1; i--){        soma += numeros.charAt(10 - i) * i;              }      resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;      if (resultado != digitos.charAt(0)) if($(element).val().length==0) return true; else return false;;      numeros = cpf.substring(0,10);      soma = 0;      for (i = 11; i > 1; i--){        soma += numeros.charAt(11 - i) * i;          }      resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;      if (resultado != digitos.charAt(1)) if($(element).val().length==0) return true; else return false;;      return true;    }else if($(element).val().length==0) return true; else return false;  },  "CPF inválido");jQuery.validator.addMethod("verificaCNPJ", function(value, element) {cnpj = value.replace(/\D/g,"");while(cnpj.length < 14) cnpj = "0"+ cnpj;var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;var a = [];var b = new Number;var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];for (i=0; i<12; i++){a[i] = cnpj.charAt(i);b += a[i] * c[i+1];}if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }b = 0;for (y=0; y<13; y++) {b += (a[y] * c[y]);}if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }if ((cnpj.charAt(12) != a[12]) || (cnpj.charAt(13) != a[13]) || cnpj.match(expReg) ) if($(element).val().length==0) return true; else return false;return true;}, "CNPJ inválido."); // Mensagem padrão

modifique as "" que normalmente ficamerradas quando se copia da internet

#3 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 19/06/2009, 19:19

eu não entendi oq vc quiz dizer acima + aqui o cpf e cnpf funciona normalmente se eu digtar o cpf ou cnpj certo o jquery não mostra mensagem de erro e se eu digitar um ou outro errado ou os 2 errados ele aparece a mensagem de erro cpf inválido , cnpj inválido o problema era fazer um if dentro do $("#meuForm").validate({ pq o jquery não quer aceitar o IF pq se não eu colocaria de pessoa fisica foi selecionada eu mando o jquery validar o cpf e nÃo o cnpj e se pessoa for juridica eu mando o jquery validar o cnpj o problema q está acontencendo é o seguinte ...
como não tem if em lugar algum ele obriga validar os dois senão ele não envia o formulario .

e eu tava vendo aqui tb se eu deixar o button do type submit ele valida meu FORM agora se eu deixo ele do typo button ele não valida nada , não funciona nada

#4 Édipo Costa Rebouças

Édipo Costa Rebouças

    Veterano

  • Ex-Admins
  • 1079 posts
  • Sexo:Masculino
  • Localidade:Brasil - São Paulo

Posted 19/06/2009, 23:26

well ... é simples...


o required é usado para falar que um campo é obrigatorio então use

required: true
para campos obrigatorios

required: false

para campos não obrigatorios

required: "seletor css"

caso esse seletor retorne algum element, o campo é requerido.


se você colocar por exemplo

cnpj: { required: "#meucampo:filled" }


ele só vai ser obrigatório, se o input type text/textarea ... estiver com algum caracter preenchido.



similarmente você deveria poder usar:

cnpj: { cnpj: "#meucampo:filled" }

mas não funciona... pois o cara que fez o extra pack não previu esse hipotese....

se o seu extra pack implementa o checked

cnpj: { cnpj: "#meucampo:checked" }

deveria funcionar, mas não funciona pelo mesmo motivo acima.

eu consegui ajeitar o meu extra pack para funcionar assim:

cnpj: { required:#meucampo:checked", cnpj: true }

o campo só é requirido se o #meucampo estiver checado, e o cnpj valida, mas só se ele for preenchido, caso não seja, ele não valida o cnpj.

o js que passei é o meu extra pack que uso junto com o jquery.validate ultima versão.


se você precisar colocar um if numa validação se faz assim:

cnpj: { required: function(element){
//seu código, element é o campo ao qual se deseja validar, retorne true caso a validação falhe, e false para validação com sucesso
} }


eu tenho uma implementação disso...

www.marisolsa.com.br/business

tenho uma outra tirando e colocando campos dinamicamente:

www.richmond.com.br/cadastro/


se você precisar tirar e colocar campos dinamicamente, quando você precisar add o campo, vai ter que adicionar as regras denovo, como esta feito nesse site, se você não conseguir fazer com o exemplo do marisolsa você vai precisar tirar e remover regras... vai no site do desenvolver e procure na documentação addRule e removeRule ou algo parecido, mais claro que isso não dá.

#5 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 22/06/2009, 15:04

Então Édipo no final acabei fazendo a validação do meu form tudo em js puro mesmo já q não estava conseguindo usar o jquery para está parte de CPF e CNPJ , mas eu vou tentar implementar este seu exemplo sim eu meu form ou melhor em outro form para ver se da tudo certo , pois no momento por motivo de presa não vai dar pra fazer estes destes agora + assim q eu tiver um tempo eu vou tentar fazer sim do jeito q vc passou eu agradeço pela a juda sua e do pessoal do forum ae q sempre da uma força pro pessoal brigadão e quando eu tentar aqui fazer seu exemplo eu entro em contato com vc té +

#6 r. campos

r. campos

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 30/06/2009, 01:57

oo Édipo, cara to com mesmo problema do nosso irmão ai em cima
só que tipo.. fiz o que vc indico certinho
(acredito que esteja certo)
[codebox]
$(document).ready( function() {
$("#cadEstagiario").validate({
rules:{
cnpj:{required: "#tpPessoaJ:checked", verificaCNPJ: true},
razao:{required: "#tpPessoaJ:checked"},
ramoEmpresa:{required: "#tpPessoaJ:checked"},
nome:{required: true},
cpf:{required: true, verificaCPF: true},
telefone1:{required: true},
usuario:{required: true},
senha:{required: true},
senha2:{required: true, equalTo: "#senha"}
},
messages:{
cnpj:{required: '<span class="font_Avisos"> ***</span>', verificaCNPJ: '<span class="font_Avisos"> Inválido!</span>'},
razao:{required: '<span class="font_Avisos"> ***</span>'},
ramoEmpresa:{required: '<span class="font_Avisos"> ***</span>'},
nome:{required: '<span class="font_Avisos"> ***</span>'},
cpf:{required: '<span class="font_Avisos"> ***</span>', verificaCPF: '<span class="font_Avisos"> Inválido!</span>'},
telefone1:{required: '<span class="font_Avisos"> ***</span>'},
usuario:{required: '<span class="font_Avisos"> ***</span>'},
senha:{required: '<span class="font_Avisos"> ***</span>'},
senha2:{required: '<span class="font_Avisos"> ***</span>', equalTo: '<span class="font_Avisos"> Não confere!</span>'}
},
submitHandler: $.post() //$.post () ==> envia como post o formulario!!
});
});[/codebox]


peguei a função que vc indico de "checked"

[codebox]
jQuery.validator.addMethod("checked",function(value, element){
var inp_name=($(element).attr('name'));
if($('input[name="'+inp_name+'"]:checked').length){
return true;
}else{
return false;
}
},"Escolha uma opção!");
[/codebox]

só que tipo a parte de requerido
funciona belezaaa... se ele tá checado ou nao
mais de validação mesmo ele nao estando chegando ele faz a verficação
ai fica dando inválido..

ai ja tentei assim..
[codebox]
$(document).ready( function() {
$("#cadEstagiario").validate({
rules:{
cnpj:{required: "#tpPessoaJ:checked", verificaCNPJ: "#tpPessoaJ:checked"},
[/codebox]

indo meio que pela lógica neh
só que nada ainda :S

alguma idéia?!

abraço

#7 Édipo Costa Rebouças

Édipo Costa Rebouças

    Veterano

  • Ex-Admins
  • 1079 posts
  • Sexo:Masculino
  • Localidade:Brasil - São Paulo

Posted 30/06/2009, 08:03

Você pegou a funcção do cnpj também? pois tem que usar a que eu passei pois eu fiz uma modificação nela para funcionar.

cnpj:{required: "#tpPessoaJ:checked", verificaCNPJ: true},

Se você estiver usando o extra pack que te passei e mesmo assim ta dando errado, tenta pegar o do site da marisol, que esta funcionando com essa implementação, pode estar cagando algum caractere que você pegou no codebox, como aspas.

#8 r. campos

r. campos

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 30/06/2009, 12:42

Você pegou a funcção do cnpj também? pois tem que usar a que eu passei pois eu fiz uma modificação nela para funcionar.

cnpj:{required: "#tpPessoaJ:checked", verificaCNPJ: true},

Se você estiver usando o extra pack que te passei e mesmo assim ta dando errado, tenta pegar o do site da marisol, que esta funcionando com essa implementação, pode estar cagando algum caractere que você pegou no codebox, como aspas.



peguei não.. mais vo pega! koakoaoaokaokakoakoakoa
a de cpf vc tbm modifico? pra funciona assim??


abraço
valeu pela força

#9 Édipo Costa Rebouças

Édipo Costa Rebouças

    Veterano

  • Ex-Admins
  • 1079 posts
  • Sexo:Masculino
  • Localidade:Brasil - São Paulo

Posted 30/06/2009, 15:57

modifiquei todas

#10 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 26/09/2017, 06:55

Prix Du Viagra En Parapharmacie Viagra.Es buy cialis Viagraprofessionalwithoutaprescription Effetti Collaterali Propecia Overnight Lavitra

#11 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 08/10/2017, 10:54

Septrin What Is Zithromax Viagra Eqivalent Herbal Tablets cialis Prix Du Viagra Suisse
Levitra Pharmacocinetique Cialis 10mg Anwendung viagra Online Zentel Find cheapeast isotretinoin amex overseas Priligy Sevilla

#12 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 08/10/2017, 22:26

Stendra Order Medicine Pharmacy By Money Order Interactions Amoxicillin Betaseron Amoxil By Vbulletin levitra vs cialis Acquisto Sildenafil 100mg Prix Cialis Tadalafil 5mg
Buy 10 Pack Of Clomid Pills generic viagra Ieson Propecia
Propecia Adsl New Healthy Man generic levitra 20mg Achat Propecia Paris Cialis Aus Berlin Viagra Store Coupons
Al Maximo Kamagra levitra online pharmacy Canada Drug Pharmacy
Cialis Soft Mastercard viagra Cheap Real Fluoxetine Best Buy Cephalexin Soap
Buy Zithromax Online Us viagra online Lithium Carbonate Without Rx Viagra Ai Giovani

#13 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 22/10/2017, 21:34

EntraСÐвÐÑРÐЮnez Cephalexin Dog Medication Cialis 5 Mg Generico Precio viagra cialis Correct Viagra Dosage Legally Buy Pain Pills
Buy Prevacid Odt Cuanto Cuesta La Viagra En La Farmacia Cialis En Suisse Pas Cher viagra Cost Of 100 Mg Of Viagra Levitra Generico Affitto
Levlen Tri Regol Viagra A Paris En Saint Propecia Minoxidil Pill viagra Oral Jelly Kamagra Congestion Nasale Discount Generic On Line Doryx Order Shop Cheapeast

#14 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 04/11/2017, 02:48

Tadacip Cialis Generico In Farmacia Sildenafil Pfizer 50 Mg viagra Cialis Soft Tabs Review
Propecia Ahnlich cialis online Canadian Pharms
Prescription Drugs From India Keflex During Pregnancy Can Amoxicillin Get You Hi buy viagra Acquistare Viagra Con Paypal Elimite Cream At Cvs

#15 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 30/11/2017, 00:58

Cialis Daily 2.5 Mg Online Acular How To Buy Antibiotics Online viagra online Ventolin Hfa Aer Glaxosmith
Il Cialis Ha Effetti Collaterali Buy Real Kamagra Uk My Secure Tabs Pharmacy viagra Kamagra Vente Libre France Propranolol 40 Zentel Worldwide Store




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq