Versão atual:

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.

Versão (1):

Ver a versão formatada

Cannot convert NaN to java.lang.Integer

Comentário

new question