Dicas JavaScript - Parte II
Veja mais um artigo de Emerson Facunte sobre Dicas de JavaScript. Acesso exclusivo para Assinantes.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
Mais melhorias para o desenvolvedor Web
Continuando com o artigo de dicas JavaScript, seguem duas boas funções, a primeira para digitar data formatadas e a segunda para validade CPF
Digitando DATAS no campo INPUT <html>
Crie um arquivo com o nome funcoes.js e digite o conteúdo que segue.
function DigitaData(campo) {
var data = new String( campo.value );
var wData = '';
var cont = 0;
for (i=0; i<data.length ; i++) {
if (i <= 1) {
if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' ) {
wData += data.charAt(i);
}
else
{
cont++;
}
}
if (i == 2) {
if ( data.charAt(i) == '/' ) {
wData += data.charAt(i);
}
else {
if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' ) {
wData += '/';
wData += data.charAt(i);
cont ++;
}
else {
wData += '/';
cont ++;
}
}
}
if (i > 2 && i <= 4) {
if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' ) {
wData += data.charAt(i);
}
else
{
cont++;
}
}
if (i == 5) {
if ( data.charAt(i) == '/' ) {
wData += data.charAt(i);
}
else {
if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' ) {
wData += '/';
wData += data.charAt(i);
cont++;
}
else {
wData += '/';
cont++;
}
}
}
if (i > 5 && i <= 9) {
if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' ) {
wData += data.charAt(i);
}
else
{
cont++;
}
}
if (i > 9 )
{
cont++;
}
}
if ( cont > 0 )
{
// Atualiza o campo
campo.value = wData;
}
}
Vamos testar nossa função:
<HTML>
<script language="JavaScript" src="/funcoes.js"></script>
<BODY>
<form name="teste">
<input type=text name=data onKeyUp="DigitaData(this)" onBlur="DigitaData(this)"
</form>
</BODY>
<script language=javascript>
function validacpf(){
var i;
s = document.frmCli.txtCpf.value;
var c = s.substr(0,9);
var dv = s.substr(9,2);
var d1 = 0;
for (i = 0; i < 9; i++)
{
d1 += c.charAt(i)*(10-i);
}
if (d1 == 0){
alert("CPF Invalido")
return false;
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(0) != d1)
{
alert("CPF Invalido")
return false;
}
d1 *= 2;
for (i = 0; i < 9; i++)
{
d1 += c.charAt(i)*(11-i);
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(1) != d1)
{
alert("CPF Invalido")
return false;
}
return true;
}
</script>
</head><body>
<form name=frmCli>
<input type=text name=txtCpf size=11 maxlength=11 onblur="return validacpf()">CPF
</form>
</body>
Validando CPF
<HTML>
<HEAD>
<script language=javascript>
function validacpf(campo){
var i;
s = campo.value;
var c = s.substr(0,9);
var dv = s.substr(9,2);
var d1 = 0;
for (i = 0; i < 9; i++)
{
d1 += c.charAt(i)*(10-i);
}
if (d1 == 0){
alert("CPF Invalido")
return false;
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(0) != d1)
{
alert("CPF Invalido")
return false;
}
d1 *= 2;
for (i = 0; i < 9; i++)
{
d1 += c.charAt(i)*(11-i);
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(1) != d1)
{
alert("CPF Invalido")
return false;
}
return true;
}
</script>
</HEAD>
<BODY>
<form name=teste>
<input type=text name=sCPF size=15 maxlength=11 onblur="return validacpf()">CPF
</form>
</BODY>
Nos próximos artigos iremos brincar um pouco com o O.O.
Forte abraço e sucesso a todos!
Emerson Facunte é especialista em aplicações e-business, e membro-fundador do DUG-BR. Ministrou palestras e cursos para mais de 5 mil pessoas em todo território nacional. Pode ser contatado em emerson@facunte.com.br



