Encontrei este código para aplicar máscara de CNPJ (apenas a máscara, não a validação).
A máscara é criada no padrão "00.000.000/0000-00" mas infelizmente está aceitando letras também.
Essa é função que deveria permitir apenas números. Algo está errado nela e quero a ajuda dos colegas.
// ##### FUNÇÃO PERMITIR APENAS NÚMEROS ##### function onlyNumber(e) { var charCode = (e.which) ? e.which : event.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; }
Essa é a function que cria a máscara (está funcionando).
/////////////// FORMATA CAMPO CNPJ /////////////////////////////// function FormataCnpj(campo, teclapres) { var tecla = teclapres.keyCode; var vr = new String(campo.value); vr = vr.replace(".", ""); vr = vr.replace("/", ""); vr = vr.replace("-", ""); tam = vr.length + 1; if (tecla != 14) { if (tam == 3) campo.value = vr.substr(0, 2) + '.'; if (tam == 6) campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 5) + '.'; if (tam == 10) campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(6, 3) + '/'; if (tam == 15) campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(6, 3) + '/' + vr.substr(9, 4) + '-' + vr.substr(13, 2); } }
Chamo a function assim
<input type="text" onkeyup="FormataCnpj(this,event)"/>