Ir para conteúdo
Fórum Script Brasil
  • 0

Validação... Como Fazer?


REALMISTERMIX

Pergunta

O script está funcionando perfeitamente para validar o CPF mas como faço para ele não enviar o formulário enquanto não estiver certo? Oque devo inserir?

<script language="javascript">

function submete () {

   if (checaCPF(document.form1.cpf.value)) {

     document.form1.submit();

   }

   else {

    errors="1";

     if (errors) alert('O CPF que você inseriu é Inválido!');

   document.MM_returnValue = (errors == '');

   }

}

function checaCPF (CPF) {

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;

        alert('O número de CPF é válido!');

return true;

}

</script>

Esta é a tag que estou usando para enviar:

<form name="form1" action="registro.php" method="post">
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Tenta assim:

Coloca um return no Onsubmit do formulário

<form name="form1" action="registro.php" method="post" Onsubmit="return submete()" >

Aí você substitui os document.form1.submit() que estão no código da função submete() por return 1 se verdadeiro ou return 0 se for falso.

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz desta forma e não adiantou, apesar de avisar que o CPF é inválido ele envia o formulário do mesmo jeito.

Abaixo o script completo como estava antes de alterar para oque você me passou:

<script language="javascript">

function submete () {

  if (checaCPF(document.form1.cpf.value)) {

    document.form1.submit();

  }

  else {

    errors="1";

    if (errors) alert('O CPF que você inseriu é Inválido!');

  document.MM_returnValue = (errors == '');

  }

}

function checaCPF (CPF) {

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;

        alert('O número de CPF é válido!');

return true;

}

</script>

<form name="form1" action="registro.php" method="post">

<table width="100%" border="0" cellpadding="3" cellspacing="1" class="creg5">

    <tr class="creg2">

      <td width="11"  class="contentfont"><?=$imgarrowit;?></td>

      <a name=NomeCompleto></a>

      <td width="150"  class="contentfont"><b>

        Nome Completo

        </b><br> </td>

      <td class="contentfont"> <input name="nome" type="text" class="contentfont" id="nome" value="<?=$_POST['nome'];?>" maxlength=50"></td>

    </tr>

    <tr class="creg2">

      <td width="11"  class="contentfont"><?=$imgarrowit;?></td>

      <a name=CPF></a>

      <td width="150"  class="contentfont"><b>

        <font color="#FF0000">CPF:</font>

        </b><br> </td>

      <td class="contentfont"> <input name="cpf" type="text" class="txt" id="cpf" value="<?=$_POST['cpf];?>" maxlength="11" onchange="submete();">

      <input type="button" name="Submit" value="Validar CPF" class="txt" Onclick="submete();"></td>

    </tr>

//ATÉ AQUI ELE DEVE VALIDAR O CPF E RECARREGAR A PÁGINA, CASO ESTEJA CORRETO, CASO CONTRÁRIO NÃO ENVIA, MAS DEPOIS DA PÁGINA RECARREGADA E CONFIRMADA ELE DEVE ENVIAR E NÃO ESTÁ ENVIANDO//

<tr class="creg3">

      <td  class="contentfont"><?=$imgarrowit;?></td>

      <td  class="contentfont"><b>

        Endereço

        </b></td>

      <td  class="contentfont"> <input name="address" type="text" class="contentfont" id="endereco" value="<?=$_POST['endereco'];?>" size=40" maxlength="50"></td>

    </tr>

    <tr class="creg2">

      <td  class="contentfont"><?=$imgarrowit;?></td>

      <td  class="contentfont"><b>

        Cidade

        </b></td>

      <td  class="contentfont"> <input name="cidade" type="text" class="contentfont" id="cidade" value="<?=$_POST['cidade];?>" size="40" maxlength="50"></td>

    </tr>

<hr color=#cccccc noShade size=1>

    <input name="registerok" type="button" class="contentfont" id="registerok" value="Registrar">

</table>

</form>

A função deste formulário é inserir no banco de dados os dados acima, mas somente após a verificação concluída, ou seja, enquanto o CPF e os outros campos não estiverem corretos ele não envia. No caso dos outros campos já está beleza, o problema é o CPF mesmo.

Não sei se deu pra entender, mas é mais ou menos isso.

Editado por REALMISTERMIX
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...