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

(Resolvido) validação de titulo


opeta

Pergunta

Estou com problemas para verificar o titulo de eleitor digitado e gerar a mensagem de erro em uma DIV, gostaria muito de uma ajuda.

este é o script original que peguei no site do TSE

function validarTitulo(inscricao) {
      var paddedInsc = inscricao;
      //alert("validando inscricao " + paddedInsc);
      var dig1 = 0;
      var dig2 = 0;

      var tam = paddedInsc.length;
      var digitos = paddedInsc.substr(tam - 2, 2);
      var estado  = paddedInsc.substr(tam - 4, 2);
      var titulo  = paddedInsc.substr(0, tam - 2);
      var exce = (estado == '01') || (estado == '02');
      dig1 = (titulo.charCodeAt(0) - 48) * 9 + (titulo.charCodeAt(1) - 48) * 8 +
             (titulo.charCodeAt(2) - 48) * 7 + (titulo.charCodeAt(3) - 48) * 6 +
             (titulo.charCodeAt(4) - 48) * 5 + (titulo.charCodeAt(5) - 48) * 4 +
             (titulo.charCodeAt(6) - 48) * 3 + (titulo.charCodeAt(7) - 48) * 2;
      var resto = (dig1 % 11);
      if (resto == 0) {
        if (exce){
          dig1 = 1;
        } else {
          dig1 = 0;
        }
      } else {
        if (resto == 1) {
          dig1 = 0;
        } else {
          dig1 = 11 - resto;
        }
      }

      dig2 = (titulo.charCodeAt(8) - 48) * 4 + (titulo.charCodeAt(9) - 48) * 3 + dig1 * 2;
      resto = (dig2 % 11);
      if (resto == 0) {
        if (exce) {
          dig2 = 1;
        } else {
          dig2 = 0;
        }
      } else {
        if (resto == 1){
          dig2 = 0;
        }else{
          dig2 = 11 - resto;
        }
      }

      if ( (digitos.charCodeAt(0) - 48 == dig1) && (digitos.charCodeAt(1) - 48 == dig2) ) {
        return true; // Titulo valido
      } else {
        return false;
      }

  }
e este é o meu formulário
<div class="div_formfield"><span class="titulo1">Título de Eleitor </span></div>
<div class="div_textfield"><input name="titulo" type="text" class="textfield_1" id="titulo" size="14" maxlength="13">
<div class="div_titlefield" id="verifica_titulo"></div><br class="clearboth"/>

no caso a mensagem apareceria na div "verifica_titulo"

desde já agradeço qualquer ajuda.

alguém poderia me ajudar? agradeceria muito ^_^

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

2 respostass a esta questão

Posts Recomendados

  • 0

alterei o final da função, da uma olhada

if ( (digitos.charCodeAt(0) - 48 == dig1) && (digitos.charCodeAt(1) - 48 == dig2) ) {
        //return true; // Titulo valido
        erro = '';
    } else {
        //return false;
        erro = 'título inválido';
    }
    if (erro != ''){
        var obj = document.getElementById('verifica_titulo');
        obj.innerHTML = erro;
    }
<div class="div_formfield"><span class="titulo1">Título de Eleitor </span></div>
<div class="div_textfield"><input name="titulo" type="text" class="textfield_1" id="titulo" size="14" maxlength="13" onBlur="java script: validarTitulo(this.value);">
<div class="div_titlefield" id="verifica_titulo"></div><br class="clearboth"/>

Link para o comentário
Compartilhar em outros sites

  • 0
alterei o final da função, da uma olhada

if ( (digitos.charCodeAt(0) - 48 == dig1) && (digitos.charCodeAt(1) - 48 == dig2) ) {
        //return true; // Titulo valido
        erro = '';
    } else {
        //return false;
        erro = 'título inválido';
    }
    if (erro != ''){
        var obj = document.getElementById('verifica_titulo');
        obj.innerHTML = erro;
    }
<div class="div_formfield"><span class="titulo1">Título de Eleitor </span></div>
<div class="div_textfield"><input name="titulo" type="text" class="textfield_1" id="titulo" size="14" maxlength="13" onBlur="java script: validarTitulo(this.value);">
<div class="div_titlefield" id="verifica_titulo"></div><br class="clearboth"/>
agradeço muito pela sua resposta agora ta indo numa boa, abração. :D acabei esquecendo faltou um } no seu código javascript aqui esta o código Completa pra quem quiser
//verifica o título
 function validarTitulo(inscricao) {
      var paddedInsc = inscricao;
      //alert("validando inscricao " + paddedInsc);
      var dig1 = 0;
      var dig2 = 0;

      var tam = paddedInsc.length;
      var digitos = paddedInsc.substr(tam - 2, 2);
      var estado  = paddedInsc.substr(tam - 4, 2);
      var titulo  = paddedInsc.substr(0, tam - 2);
      var exce = (estado == '01') || (estado == '02');
      dig1 = (titulo.charCodeAt(0) - 48) * 9 + (titulo.charCodeAt(1) - 48) * 8 +
             (titulo.charCodeAt(2) - 48) * 7 + (titulo.charCodeAt(3) - 48) * 6 +
             (titulo.charCodeAt(4) - 48) * 5 + (titulo.charCodeAt(5) - 48) * 4 +
             (titulo.charCodeAt(6) - 48) * 3 + (titulo.charCodeAt(7) - 48) * 2;
      var resto = (dig1 % 11);
      if (resto == 0) {
        if (exce){
          dig1 = 1;
        } else {
          dig1 = 0;
        }
      } else {
        if (resto == 1) {
          dig1 = 0;
        } else {
          dig1 = 11 - resto;
        }
      }

      dig2 = (titulo.charCodeAt(8) - 48) * 4 + (titulo.charCodeAt(9) - 48) * 3 + dig1 * 2;
      resto = (dig2 % 11);
      if (resto == 0) {
        if (exce) {
          dig2 = 1;
        } else {
          dig2 = 0;
        }
      } else {
        if (resto == 1){
          dig2 = 0;
        }else{
          dig2 = 11 - resto;
        }
      }

      if ( (digitos.charCodeAt(0) - 48 == dig1) && (digitos.charCodeAt(1) - 48 == dig2) ) {
        //return true; // Titulo valido
        erro = '<font color=green>Título ok</font>';
    } else {
        //return false;
        erro = '<font color=red>Título inválido</font>';
    }
    if (erro != ''){
        var obj = document.getElementById('verifica_titulo');
        obj.innerHTML = erro;
    }
    }

Editado por opeta
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...