Bueno, seguro que se puede optimizar pero funciona, gracias a todos. Os paso el codigo total JS para controlar un dni válido.
Código PHP:
<SCRIPT language="Javascript">
function isDigit (c)
{ return ((c >= "0") && (c <= "9"))
}
function nif(dni) {
var numero = dni % 23 + 1;
letra='TRWAGMYFPDXBNJZSQVHLCKET';
letra=letra.substring(numero-1,numero);
return letra;
}
function es_correcto () {
var i;
var dni=document.form.dni.value;
for (i = 0; i < 8; i++)
{
var c = dni.charAt(i);
if (!isDigit(c)) {
return false;
}
}
var letra_introducido = nif(dni.substring(0,8));
var letra_real = dni.charAt(8);
if (letra_introducido == letra_real) {
return true;
} else { alert ("Debe introducir un dni válido");
return false;
}
}
</SCRIPT>
Cuidaros