Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paulofbc

Botão Submit com funções envio e javascript.

Recommended Posts

E aê pessoal,

 

estou com um problema no formulário de uma pagina aqui, tipo, eu coloquei algumas funções de validação de formulário nos campos CPF e CNPJ, e algumas funções estão dependendo do botão submit que serve para enviar o formulário como tambem fazer a checagem nos campos.

 

A dúvida é a seguinte, a pessoa tem que digitar corretamente o CPF, e se ela não digitar o campo CPF e clicar no botão sumit, vai gerar uma caixa de alerta informando que tem que preencher corretamente o campo CPF, só que quando a pessoa clica no botão submit para gerar o formulário, aparece mensagem de alerta e após voce clicar no ok para fechar a mensagem, o formulário muda de pagina que é a outra de agradecimento de e-mail.

 

Como eu faço para por, tipo, um stop, quando a pessoa clicar o botão gerar o formulário, gerar a mensagem, mas não proceder operação de envio. Alguem pode me ajudar?

 

Deem uma olhada na pagina deste fomulário e tentem fazer o teste no campo CPF e depois cliquem em gerar o fomulário.

 

Página do formulário

 

abraços,

 

 

Paulo Cardoso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste o campo antes de enviar

 

faz uma função mais ou menos igual a essa

 

<script>function checa(){     if (document.nome_do_form.campoCPF.value!=""){         document.nome_do_form.submit();    }else{        alert("o campo PCF não pode ficar vazio");}}</script>

E depois al invés de colocar um campo submit coloque um campo button assim

 

<input type="button" onClick="checa()">

 

dessa forma só vai enviar se o CPF estiver preenchido

 

você também pode checar outros campos dentro da função

 

 

[]'s

http://forum.imasters.com.br/public/style_emoticons/default/ninja.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá André,eu vou testar aqui, ok?daqui a pouco lhe darei retorno.um abraço!Paulo Cardoso

Compartilhar este post


Link para o post
Compartilhar em outros sites

André,seguinte kra, eu testei aqui, deu tudo certinho, só que ele não retorna no campo CPF e segue para a proxima pagina, não sei não kra, posso estar falando tonteira, mas é assim, neste form ele tem uma action que envia o fomulário, e toda vez quando preenche o form e clicar em enviar, ele vai para a pagina de agradecimento e não volto nos campos, pois as mensagens de alerta aparecem mais a pagina vai para a outra, tipo, não adianta nada os alertas.um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O botão "Enviar" provavelmente é do typo submit

 

ex: <input type="submit" value="Enviar">

 

mude ele pra tipo button ficando assim

 

<input type="button" value="Enviar">

 

e depois acrescente o que eu te falei

 

ficando assim:

 

<input type="button" value="Enviar" onclick="checa()">

 

já fez isso?

 

[]'s

http://forum.imasters.com.br/public/style_emoticons/default/ninja.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá André,

 

testei novamente e não deu kra, eu juro pra voce que eu estou fazendo tudo corretamente.

 

mas deixa eu lhe dizer uma coisa, no botão de enviar, eu tenho uma outra função que chama mais 02 acima que estão no código java script, vou lhe mostrar como que está o botão de enviar:

<input name="Clique aqui" type="button" value="Enviar" Onclick="submitPop2();submete();checa();">
agora veja as funções que o mesmo chama o java script:

<script>function checa(){    if (document.form1.CPF.value){        document.form1.submit();   }else{       alert("o campo CPF não pode ficar vazio");}}</script><script language="javascript">function submete () {if (checaCPF(document.form1.CPF.value)) {document.form1.submit();}else {errors="1";if (errors) alert('CPF inválido, por favor digite-o novamente.');document.MM_returnValue = (errors == '');}}function validaChar(obj){if(isNaN(obj.value)){alert('Digite somente números. Sem pontos, letras ou outros carácteres.');obj.value=obj.value.substring(0,obj.value.length-11);}}function checaCPF (CPF) {if (CPF.length < 11) {alert("O campo CPF deve conter 11 caracteres!");return false}if (CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" ||CPF == "22222222222" || CPF == "33333333333" || CPF == "44444444444" ||CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" ||CPF == "88888888888" || CPF == "99999999999")return false;soma = 0;for (i=0; i < 9; i ++)soma += parseInt(CPF.charAt(i)) * (10 - i);resto = 11 - (soma % 11);if (resto == 10 || resto == 11)resto = 0;if (resto != parseInt(CPF.charAt(9)))return false;soma = 0;for (i = 0; i < 10; i ++)soma += parseInt(CPF.charAt(i)) * (11 - i);resto = 11 - (soma % 11);if (resto == 10 || resto == 11)resto = 0;if (resto != parseInt(CPF.charAt(10)))return false;return true;}</script><script id=clientEventHandlersJS language=javascript><!--var vsubmitform = "paymode01.asp?compra=REGNAC&recipient=web@registranet.com.br&subject=Formgeral dominio nacional";function SubmitForm(vform) {	document.forms[vform].action = vsubmitform;	document.forms[vform].submit();}function configuracao_onclick() {	var vop = document.activeElement.value;	if(vop == "registro") vsubmitform = "paymode01.asp?compra=REGNAC&recipient=web@registranet.com.br&subject=Formgeral dominio nacional";	else if(vop == "comb_stand") vsubmitform = "paymode03.asp?compra=PTNACS&recipient=web@registranet.com.br&subject=Formgeral dominio nacional";	else if(vop == "comb_pro") vsubmitform = "paymode03.asp?compra=PTNACP&recipient=web@registranet.com.br&subject=Formgeral dominio nacional";	else if(vop == "comb_adv") vsubmitform = "paymode03.asp?compra=PTNACA&recipient=web@registranet.com.br&subject=Formgeral dominio nacional";}var vsubmitemail = "http://www.registranet.com.br/asp/formmail.asp";function submitPop() { 	document.form1.action = vsubmitemail; 	document.form1.submit();} var vsubmitemail2 = "http://www.registranet.com.br/asp/formmail.asp";function submitPop2() { 	document.form1.action = vsubmitemail2; 	document.form1.submit();}function MM_findObj(n, d) { //v4.01  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);  if(!x && d.getElementById) x=d.getElementById(n); return x;}function MM_validateForm() { //v4.0  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);    if (val) { nm=val.name; if ((val=val.value)!="") {      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';      } else if (test!='R') { num = parseFloat(val);        if (isNaN(val)) errors+='- '+nm+' precisa conter somente números.\n';        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');          min=test.substring(8,p); max=test.substring(p+1);          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }  } if (errors) alert('O(s) seguinte(s) erro(s) foi(oram) encontrado(s):\n'+errors);  document.MM_returnValue = (errors == '');}function MM_openBrWindow(theURL,winName,features) { //v2.0  window.open(theURL,winName,features);}//--></SCRIPT>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou passar pra voce tambem como que está o código do form:

<form action="../pop_form_problema.asp" method="post" name="form1" target="_self" onSubmit="MM_validateForm('CNPJCGC','','NisNum','CPF','','NisNum','CEP','','NisNum');return document.MM_returnValue">

 

um abraço!

 

 

Paulo Cardoso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, vou tentar e logo lhe respondo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá André,fiz novamente o que voce me passou e não deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

André,

 

tem um esquema nesta pagina de campo oculto que eu acredito que possa ser ele que esteja dando este problema.

 

o código que estou usando de campo oculto no lado do botão enviar é esse:

<input type="hidden" name="redirect" value="http://www.registranet.com.br/ecommerce/agradecimento_boleto_email.htm">

um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, sem problemas André.eu posso lhe enviar por e-mail a pagina que contem o código javascript?me passe seu e-mail.um abraço!Paulo Cardosos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok André,já enviei, aguardo seu retorno.muito obrigado.abraços!`Paulo Cardoso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fios,

 

kctada.... tah indo direto pq você naum colocou um return false depois da respota de erro..... dah uma olhada nessa function de validação... é molinho... qualquer duvida passa um email ou um post... ele não faz mil e uma coisas como o do andre mas funfa e quebra uma árvore :)

 

function validaform() {if (document.Form.nome.value.length <1){alert("Por favor, preencha seu nome/razão social corretamente");Form.nome.focus();return false;}if (document.Form.cpf.disabled==false){	if (document.Form.cpf.value.length <1)  {alert("Por favor, preencha o CPF corretamente");  Form.cpf.focus();  return false;  }}if (document.Form.cnpj.disabled==false){	if (document.Form.cnpj.value.length <1)  {alert("Por favor, preencha o CPF corretamente");  Form.cnpj.focus();  return false;  }}if (document.Form.endereco.value.length <1){alert("Por favor, preencha o endereço corretamente");Form.endereco.focus();return false;}if (document.Form.numero.value.length <1){alert("Por favor, preencha p número corretamente");Form.numero.focus();return false;}if (document.Form.cep.value.length <1){alert("Por favor, preencha o CEP corretamente");Form.cep.focus();return false;}if (document.Form.bairro.value.length <1){alert("Por favor, preencha o Bairro corretamente");Form.bairro.focus();return false;}if (document.Form.cidade.value.length <1){alert("Por favor, preencha o nome da cidade corretamente");Form.cidade.focus();return false;}if (document.Form.telefone.value.length <1){alert("Por favor, preencha o telefone corretamente");Form.telefone.focus();return false;}if (document.Form.email.value.length <1){alert("Por favor, preencha o email corretamente");Form.email.focus();return false;}if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(Form.email.value)){return (true)}else {alert("Por favor, preencha o email corretamente.")Form.email.focus();return (false)}if (document.Form.senha.value.length <1){alert("Por favor, preencha a senha corretamente");Form.senha.focus();return false;}return true;}

código de chamada:

onSubmit="return validaform();"

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

He he he

 

Esse form enorme não fui eu quem fez não, foi o paulo que postou pra eu dar uma olhada, mas ai ele mandou o código inteiro no meu e-mail e fiz algumas modificações, acho que vai funcionar agora.

 

O problema é que tinha duas funções sendo chamadas

 

uma pra validar e outra pra submeter, assim não funcionaria mesmo

tem que validar e só submeter se estiver ok

 

[]'s

http://forum.imasters.com.br/public/style_emoticons/default/ninja.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew André,deu certinho o formulário agora.um abraço!Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

André,só uma dúvida, seu quizer colocar agora um campo de validar cnpj, eu posso sem problemas né?um abraço!Paulo Cardoso

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.