Cannot convert NaN to java.lang.Integer

Bom dia!

Tenho que verificar se o CNPJ informado em um campo do tipo text é válido ou não.

Já fiz isso no próprio formulário e está funcionando bem.

Fiz uma função e coloquei o mesmo código no validateFields. Daí acontece o erro do título: "Cannot convert NaN to java.lang.Integer".

Segue código do validateFields abaixo:

function validateCnpj(cnpj){

    if(cnpj == ''){
        mostraAlertas("Informe o CNPJ!");
    }

    if (cnpj.length < 14){
        mostraAlertas("O CNPJ precisa ter 14 dígitos!");
    }

    // Elimina CNPJs invalidos conhecidos
    if (cnpj == "00000000000000" || 
        cnpj == "11111111111111" || 
        cnpj == "22222222222222" || 
        cnpj == "33333333333333" || 
        cnpj == "44444444444444" || 
        cnpj == "55555555555555" || 
        cnpj == "66666666666666" || 
        cnpj == "77777777777777" || 
        cnpj == "88888888888888" || 
        cnpj == "99999999999999")
        mostraAlertas("O CNPJ informado (" + cnpj + ") é inválido!");

    // Valida DVs
    tamanho = cnpj.length - 2
    numeros = cnpj.substring(0,tamanho);
    digitos = cnpj.substring(tamanho);

    var soma = 0;
    var pos = tamanho - 7;
    for (var i = tamanho; i >= 1; i--) {
      soma += numeros.charAt(tamanho - i) * pos--;
      if (pos < 2)
            pos = 9;
    }
    var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;

    if (resultado != digitos.charAt(0))
        mostraAlertas("O CNPJ informado (" + cnpj + ") é inválido!");

    tamanho = tamanho + 1;
    numeros = cnpj.substring(0,tamanho);
    soma = 0;
    pos = tamanho - 7;
    for (i = tamanho; i >= 1; i--) {
      soma += numeros.charAt(tamanho - i) * pos--;
      if (pos < 2)
            pos = 9;
    }
    resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
    if (resultado != digitos.charAt(1)) mostraAlertas("O CNPJ informado (" + cnpj + ") é inválido!");

}

Não consigo de maneira alguma encontrar o erro neste código.

Outra dúvida:

A linguagem nesses eventos é java, javascript... Tem partes que parecem com javascript, mas tem partes de código java... Não consegui entender isso...

Enfim, agradeço imensamente pela ajuda.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags validateform validar script ou faça a sua própria pergunta.