Investigando un poco en los foros he descubierto un código en PHP de cluster que debidamente adaptado y ayudado por esta pçagina a la que hacía referencia Cluster he hecho este código que creo que está bien.
Funciona de 2 formas. Si se pone el número seguido de un guión y el dígito te dice si está bien. Si sólo pones el número te devuelve el dígito. Espero que te sirva. Para que funcione pon el numerito y luego pincha fuera del input. Código PHP:
<html>
<head>
<title>Untitled</title>
<script>
function validar(celula){
//Script sacado de forosdelweb.
//Todas las culpas a su mal funcionamiento se deben a KarlanKas.
//inicializamos variables
sumatorio=0;
numero=0;
multiplicador=1;
cosas=celula.split("-");
letra=cosas[1];
celula=cosas[0];
longitud=celula.length-1;
//Empezamos la ronda
for(a=longitud;a>=0;a--){
multiplicador+=1
if(multiplicador==8){multiplicador=2}
//Vamos obteniendo el número que se dividirá por 11
numero2=parseInt(celula.charAt(a));
numero=numero2*multiplicador;
sumatorio+=numero;
}
//hallamos el dígito
resto=sumatorio%11;
if(resto>0){resto=11-resto}
if(resto==10){digito="K"}
else{digito=resto}
if(!letra){alert("El dígito es "+digito)}
else{
if(letra && letra!=digito){alert("No es válido")}
else{alert("código correcto");}
}
}
</script>
</head>
<body>
Ponga la célula
en el siguiente
formato: 00000-0
<input type="text"
name="numerito"
onBlur="validar(this.value)">
</body>
</html>