Buen dia, Estoy haciendo un campo que me calcule un digito de verificacion después de un guin, lo que sucede es que cuando ingreso 15 digitos, borro el guion y le doy enter, que hago para validar exacto los 15 digitos y que no me aparezca eso, aca esta el codigo
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$('#nit').change(function (event) {
if(validarSiNumero($('#nit').val())) {
$('#nit').val(calcularDigitoVerificacion($('#nit' ).val()));
} else {
$('#nit').val('');
}
});
});
function validarSiNumero(numero){
if(!/([1-15])/.test(numero)) {
alert("Número Nit no valido, ingrese números sin puntos ni comas");
return false;
} else {
return true;
}
}
function calcularDigitoVerificacion(nit) {
console.log("Entro a la funcion");
var sumatoria, digitoNit, longitudNit, DV;
var arregloPrimos=[];
//procedimiento
sumatoria = 0;
digitoNit = 0;
longitudNit = nit.length;
arregloPrimos[1] = 3;
arregloPrimos[2] = 7;
arregloPrimos[3] = 13;
arregloPrimos[4] = 17;
arregloPrimos[5] = 19;
arregloPrimos[6] = 23;
arregloPrimos[7] = 29;
arregloPrimos[8] = 37;
arregloPrimos[9] = 41;
arregloPrimos[10] = 43;
arregloPrimos[11] = 47;
arregloPrimos[12] = 53;
arregloPrimos[13] = 59;
arregloPrimos[14] = 67;
arregloPrimos[15] = 71;
console.log("Longitud Nit="+longitudNit);
for (i = 0; i < longitudNit; i++)
{
digitoNit = (nit.substr(i, 1));
sumatoria += (digitoNit * arregloPrimos[longitudNit - i]);
console.log("i="+i+" DigitoNit="+digitoNit+" Sumatoria="+sumatoria);
}
var modulo = sumatoria % 11;
if (modulo > 1) {
DV = 11 - modulo;
return nit+"-"+DV;
} else {
DV = modulo;
return nit+"-"+DV;
}
}
</script>
</head>
<body>
<label>Nit: </label>
<input type="text" name"nit" maxlength="15" size="15" id="nit"
placeholder ="Escribe el Nit" >
</body>
</html>