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

HELP JAVASCRIPT =/


hgazza

Pergunta

Eai galera, sou novo aki no forum, e tb na area de programação web

eu estou desenvolvendo um projeto de aprendizado né...

e tenho q validar os campos pra o usuario não enviar campos numerico com letras...

ateh ai beleza, mas quando eu add uma mascara no campo CPF, da conflito nas funções e a função q valida u cpf encara como invalido..

ta ai como ta u codigo ateh agora

<!-- C L I E N T   S I D E   S C R I P T I N G

    CCCCCCC     LLL          IIIII    EEEEEEEEE    NNN   NNN    TTTTTTTTT   EEEEEEEEE
   CCC   CCC    LLL           III     EEE          NNNN  NNN       TTT      EEE
   CCC          LLL           III     EEE          NNNNN NNN       TTT      EEE
   CCC          LLL           III     EEEEEE       NNN NNNNN       TTT      EEEEEE
   CCC          LLL           III     EEE          NNN  NNNN       TTT      EEE
   CCC   CCC    LLL   LLL     III     EEE          NNN   NNN       TTT      EEE
    CCCCCCC     LLLLLLLLL    IIIII    EEEEEEEEE    NNN   NNN       TTT      EEEEEEEEE 
-->

<html> 

<head> 
   <title>FORMUL&AacuteRIO !!!</title>
       <style type="text/css">
           .Bb {
               border-bottom:1px solid gray;
           }
           
           .Bt {
               border-top:1px solid gray;
           }
           
           .Br {
               border-right:1px solid gray;
           }
           
           .Bl {
               border-left:1px solid gray;
           }
       </style>
</head>

&lt;script Language="JavaScript">

function ValidaCpf() {
    var f = fFORM
    erro = new String;

    if (f.cpf.value.length == 11) {
        f.cpf.value = f.cpf.value.replace('.', '');
        f.cpf.value = f.cpf.value.replace('.', '');
        f.cpf.value = f.cpf.value.replace('-', '');

        var nonNumbers = /\D/;

        if (nonNumbers.test(f.cpf.value)) {
            erro = "A verificacao de CPF suporta apenas numeros!";
        }
        else {
            if (f.cpf.value == "00000000000" ||
            f.cpf.value == "11111111111" ||
            f.cpf.value == "22222222222" ||
            f.cpf.value == "33333333333" ||
            f.cpf.value == "44444444444" ||
            f.cpf.value == "55555555555" ||
            f.cpf.value == "66666666666" ||
            f.cpf.value == "77777777777" ||
            f.cpf.value == "88888888888" ||
            f.cpf.value == "99999999999") {

                erro = "Número de CPF inválido!"
            }

            var a = [];
            var b = new Number;
            var c = 11;

            for (i = 0; i < 11; i++) {
                a[i] = f.cpf.value.charAt(i);
                if (i < 9) b += (a[i] * --c);
            }

            if ((x = b % 11) < 2) {
                a[9] = 0
            }
            else {
                a[9] = 11 - x
            }
            b = 0;
            c = 11;

            for (y = 0; y < 10; y++)
                b += (a[y] * c--);

            if ((x = b % 11) < 2) {
                a[10] = 0;
            }
            else {
                a[10] = 11 - x;
            }

            if ((f.cpf.value.charAt(9) != a[9]) || (f.cpf.value.charAt(10) != a[10])) {
                erro = "Numero de CPF invalido.";
            }
        }
    }
    else {
        if (f.cpf.value.length == 0)
            return false
        else
            erro = "Numero de CPF invalido.";
    }
    if (erro.length > 0) {
        alert(erro);
        f.cpf.focus();
        return false;
    }
    return true;
}



function isCpfOK(c) {
    if (c == "") {
        return false;
    }
    return true;
}

function isNomeOK(c) {
    if (c == "") {
        return false;
    }
    return true;
}

function isEndcOK(c) {
    if (c == "") {
        return false;
    }
    return true;
}

function isBrrOK(c) {
    if (c == "") {
        return false;
    }
    return true;
}

function isCddOK(c) {
    if (c == "") {
        return false;
    }
    return true;
}

function isUfOK(c) {
    if (c == "") {
        return false;
    }
    return true;
}

function isCepOK(c) {
    if (c == "") {
        return false;
    }
    return true;
}

function isDddOK(c) {
    if (c == "") {
        return false;
    }
    return true;
}

function isTelOK(c) {
    if (c == "") {
        return false;
    }
    return true;
}

function EnviaForm(f) {
    if (!isCpfOK(f.cpf.value)) {
        alert("Preencha o CPF !!!");
        f.cpf.focus();
        return;
    }

    if (!isNomeOK(f.nome.value)) {
        alert("Preencha o NOME !!!")
        f.nome.focus();
        return;
    }

    if (!isEndcOK(f.endc.value)) {
        alert("Preencha o ENDERECO !!!")
        f.endc.focus();
        return;
    }

    if (!isBrrOK(f.brr.value)) {
        alert("Preencha o BAIRRO !!!")
        f.brr.focus();
        return;
    }

    if (!isCddOK(f.cdd.value)) {
        alert("Preencha a CIDADE !!!")
        f.cdd.focus();
        return;
    }

    if (!isUfOK(f.uf.value)) {
        alert("Preencha a UF !!!")
        f.uf.focus();
        return;
    }

    if (!isCepOK(f.cep.value)) {
        alert("Preencha o CEP !!!")
        f.cep.focus();
        return;
    }

    if (!isDddOK(f.ddd.value)) {
        alert("Preencha o DDD !!!")
        f.ddd.focus();
        return;
    }

    if (!isTelOK(f.tel.value)) {
        alert("Preencha o TELEFONE !!!")
        f.tel.focus();
        return;
    }
    f.submit();
}



</script>

<body> 
<center>

 <!-- C A S C A D I N G   S T Y L E   S H E E T      

     CCCCCCC      SSSSSSS      SSSSSSS     
    CCC   CCC    SSS   SSS    SSS   SSS     
    CCC          SSS          SSS     
    CCC           SSSS         SSSS     
    CCC              SSSS         SSSS     
    CCC   CCC    SSS   SSS    SSS   SSS      
     CCCCCCC      SSSSSSS      SSSSSSS
 -->

<!-------------------********************         CAMPOS         ********************-------------------->

<form id="fFORM" name="fFORM" action="formulario_back.asp" method="post">
    <table style="font-family:Comic Sans MS" cellSpacing="0" cellpadding="10">
        <tr>
            <td  align="center" style="font-family:Comic Sans MS;font-size:20pt" colspan="7">Formula&acute;rio !</td>
        </tr>
        <tr>
            <td class="Bt Bb Bl"> <span> CPF: </span> </td>
            <td class="Bt Bb Br"><input name="cpf" type="text" maxlength="14" onblur="ValidaCpf(fFORM)"> </td>
            <td class="Bt Bb"><span> Nome: </span> </td>
            <td class="Bt Bb Br" colspan="5"><input name="nome" type="text"> </td>
        </tr>
        <tr>                
            <td class="Bb Bl"><span> Endere&ccedilo: </span></td>
            <td class="Bb Br"><input name="endc" type="text" maxlength="40"></td>
            <td class="Bb"><span> Complemento: </span> </td> 
            <td class="Bb Br" colspan="5"><input name="compl" type="text"> </td>
        </tr>
        <tr>
            <td class="Bb Bl"><span> Bairro: </span>  </td>
            <td class="Bb Br"><input name="brr" type="text"></td>
            <td class="Bb"><span> Cidade: </span> </td>
            <td class="Bb Br"><input name="cdd" type="text"></td>
            <td class="Bb"><span> UF: </span> </td>
            <td class="Bb Br"><input name="uf" type="text" size="1"></td>
            <td class="Bb"><span> Cep: </span> </td>
            <td class="Bb Br"><input name="cep" type="text" size="8" onblur="tem_num()"></td>
        </tr>
        <tr>
            <td class="Bb Bl"><span> DDD: </span> </td>
            <td class="Bb Br"><input name="ddd" type="text" size="1" maxlength="3"></td>
            <td class="Bb"><span> Telefone: </span>  </td>
            <td class="Bb Br" colspan="5"><input name="tel" type="text" size="8" maxlength="9"></td>
        </tr> 
         <tr>         
            <td align="center" colspan="8"> 
                <a name="bENVIA" href="java script:EnviaForm(fFORM)" title="Envia os dados" onClick="return teste()">
                <img src="benviar.gif" width="160" height="60" border="0"></a>
            </td>
        </tr>
    </table>
</form>
</center>

</body>   
</html>




&lt;script language="javascript"> 
  
function isNum( c ) { 
    var strValidos = "0123456789"
    if (strValidos.indexOf(c) == -1) { //coloquei { e }
        return false;
    }
    return true; 
} 
  
function validaTecla(campo, event) {
    var BACKSPACE = 8; 
    var key; 
    var tecla; 
  
    CheckTAB=true;
    if (navigator.appName.indexOf("Netscape") != -1) { // aki tb { }
        tecla = event.which;
    }
    else { //e aki { }
        tecla = event.keyCode;
    }  
  
    key = String.fromCharCode( tecla); 
    
    //alert( 'key: ' + tecla + ' -> campo: ' + campo.value);

    if (tecla == 13) { // { }
        return false;
    }

    if (tecla == BACKSPACE) { //
        return true;
    }
    return ( isNum(key)); 
} 

</script>

é uma pagina bem simples, preciso q alguém me ajude a criar uma função q coloque a mascara sem conflitar com a validação

não precisa ser nop textfiel, pod ser uma mascara se só vai ser aplicada no submit, processada nu servidor..

alguém pod me ajudar???

vlww

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

4 respostass a esta questão

Posts Recomendados

  • 0
Indico você dar uma olhada nas validações já prontas que tem aqui no forum:

http://scriptbrasil.com.br/forum/index.php?showtopic=82408 ou

http://scriptbrasil.com.br/forum/index.php?showforum=65

eu já olhei, já cansei de procurar scripts na internet em diversos sites, mas todos deram conflitos, ou não funcionaram =/

Link para o comentário
Compartilhar em outros sites

  • 0

Olá amigo,

seu problema não esta na validação do CPF, mais sim no tratamento da função.

você colocou uma condição que não trata o cpf quando esta com a mascara.

substitue o:

" if (f.cpf.value.length == 11) { "

por

"if (f.cpf.value.length >= 11) {"

que vai funcionar!

e quatanto a função de formatação é bem simples

function formataCPF(CPF)

{

with (CPF)

value = value.substr(0, 3) + '.' +

value.substr(3, 3) + '.' +

value.substr(6, 3) + '-' +

value.substr(9, 2);

}

e coloca no onblur do CPF a chamada:

"onblur="ValidaCpf(fFORM);formataCPF(this);" "

falow!

Link para o comentário
Compartilhar em outros sites

  • 0
Olá amigo,

seu problema não esta na validação do CPF, mais sim no tratamento da função.

você colocou uma condição que não trata o cpf quando esta com a mascara.

substitue o:

" if (f.cpf.value.length == 11) { "

por

"if (f.cpf.value.length >= 11) {"

que vai funcionar!

e quatanto a função de formatação é bem simples

function formataCPF(CPF)

{

with (CPF)

value = value.substr(0, 3) + '.' +

value.substr(3, 3) + '.' +

value.substr(6, 3) + '-' +

value.substr(9, 2);

}

e coloca no onblur do CPF a chamada:

"onblur="ValidaCpf(fFORM);formataCPF(this);" "

falow!

deu certinhuu, vlw!!

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,4k
×
×
  • Criar Novo...