Carlos Rocha Postado Março 3, 2010 Denunciar Share Postado Março 3, 2010 pessoal, estou precisando de uma força:Tenh a função abaixo que faz exatamente o que eu preciso que é aceitar apenas numeros alem de mascarar.Porem, gostaria de implementar duas coisas nela:1) só pode 8 numeros, nem mais, nem menos.; Para CEP entende?2) Se tiver menos, não enviar o form.como fazer isso?function mascara(e,src,mask) { if(window.event) { _TXT = e.keyCode; } else if(e.which) { _TXT = e.which; } if(_TXT > 47 && _TXT < 58) { var i = src.value.length; var saida = mask.substring(0,1); var texto = mask.substring(i) if (texto.substring(0,1) != saida) { src.value += texto.substring(0,1); } return true; } else { if (_TXT != 8) { return false; } else { return true; } } }Obrigado a quem pude ajudar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fercosmig Postado Março 3, 2010 Denunciar Share Postado Março 3, 2010 um exemplo aefunction conta(id){ obj = document.getElementById(id); str = obj.value; if (str.length != 8) alert('diferente'); else alert('igual'); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Março 3, 2010 Autor Denunciar Share Postado Março 3, 2010 ta certo mas queria bloquear quando o cara acabar de digitar o 8° digito do cep e não pedmitir mais (ou seja bloquear o teclado) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 3, 2010 Denunciar Share Postado Março 3, 2010 porque você não faz isso pela propriedade html maxlength?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Março 3, 2010 Autor Denunciar Share Postado Março 3, 2010 Pois é não é??Por isso que eu digo: 2 cabeças pensam mehor que uma!Obrigado!Tinha me esquicido disso. Cabeça quente com php!hehehe Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Março 3, 2010 Autor Denunciar Share Postado Março 3, 2010 É, to cum, outro problema aqui cavernoso:if (document.FORM_ENVIA_CEP_SERVICO.TCEP.length != 10) {alert("CEP TEM QUE TER 8 DIGITOS!!!");document.FORM_ENVIA_CEP_SERVICO.TCEP.focus(); return (false);} document.FORM_ENVIA_CEP_SERVICO.submit(); É um cep com mascara Porem o codigo acima esta lendo extamente o contrario: se tem 10 (8 numeros + a mascara .-) ele bloqueia e se o lengh vier diferente de 10 ele libera. Onde esta o erro? function mascara(e,src,mask) { if(window.event) { _TXT = e.keyCode; } else if(e.which) { _TXT = e.which; } if(_TXT > 47 && _TXT < 58) { var i = src.value.length; var saida = mask.substring(0,1); var texto = mask.substring(i) if (texto.substring(0,1) != saida) { src.value += texto.substring(0,1); } return true; } else { if (_TXT != 8) { return false; } else { return true; } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 3, 2010 Denunciar Share Postado Março 3, 2010 ta estranho, mas antes desse if, adiciona, de teste, a linha:alert(document.FORM_ENVIA_CEP_SERVICO.TCEP.length);e faca os testes pra ver se o valor q ele vai informar no alert é realmente o q deveria. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Março 3, 2010 Autor Denunciar Share Postado Março 3, 2010 alertundefined Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fercosmig Postado Março 3, 2010 Denunciar Share Postado Março 3, 2010 da uma conferida no nome do formulário e do objetoposta o form ae Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Março 3, 2010 Autor Denunciar Share Postado Março 3, 2010 <? if ($acao=="qual_cep") { ?> <FORM METHOD="POST" ACTION="CarrinhoFinal.php?acao=RECEBE_CEP_SERVICO" name="FORM_ENVIA_CEP_SERVICO"> <TABLE width="400" align="center"> <TR><TD colspan="2" align="center">Não sabe o CEP?<BR />Clique <a href="http://www.buscacep.correios.com.br/servicos/dnec/index.do" target="_blank">aqui</a></TR> <TR> <!-- Fazer uma funçao em ajax ou JavaScript para verificar se o peso for superior a 30kg só aceitar encomenda pela trasnportadora. Lembrar de colocar mascara e só aceitar digitação de numeros no cep--> <TD>Informe o CEP para entrega do pedido:</TD> <TD><INPUT TYPE="text" NAME="TCEP" onkeypress="return mascara(event,this,'##.###-###');" size="10" maxlength="10"></TD> </TR> <TR> <TD>FORMA DE ENVIO:</TD> <TD> <select name="TENVIO"> <option value="40010" selected>SEDEX</option> <option value="41106">PAC</option> </select> </TD> </TR> <TR align="center"> <TD colspan="2"><input type="button" value="Enviar Dados" name="envio_cep_frete" WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)" onClick="CriticaFormulario2()"></TD> </TR> </TABLE> <? } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 3, 2010 Denunciar Share Postado Março 3, 2010 ponha um id no input, exemplo:<INPUT TYPE="text" NAME="TCEP" id="TCEP" onkeypress="return mascara(event,this,'##.###-###');" size="10" maxlength="10"> e pra acessa-lo no javascript, faca: if (document.getElementById("TCEP").length != 10) {alert("CEP TEM QUE TER 8 DIGITOS!!!");document.getElementById("TCEP").focus(); return (false);}[/code] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Março 3, 2010 Autor Denunciar Share Postado Março 3, 2010 assim que chegar em casa vou testar, mas impressionante é que tem outras validações nesse mesmo form e essas funcionam. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Março 3, 2010 Autor Denunciar Share Postado Março 3, 2010 Mesma coisa.Esta parando no alert para qualquer quantidade de digitos.Inclusive, tentei tirar a onkeiprees mas deu no mesmo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 4, 2010 Denunciar Share Postado Março 4, 2010 a ta, o correto é:document.getElementById("TCEP").value.length ou document.FORM_ENVIA_CEP_SERVICO.TCEP.value.lengthfaltou o value. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Março 4, 2010 Autor Denunciar Share Postado Março 4, 2010 Olha, obrigado, era isso mesmo.Resolveu! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Carlos Rocha
pessoal, estou precisando de uma força:
Tenh a função abaixo que faz exatamente o que eu preciso que é aceitar apenas numeros alem de mascarar.
Porem, gostaria de implementar duas coisas nela:
1) só pode 8 numeros, nem mais, nem menos.; Para CEP entende?
2) Se tiver menos, não enviar o form.
como fazer isso?
Obrigado a quem pude ajudar
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados
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.