O mejor! Prueba esto:
Código PHP:
<html>
<head>
<script>
letra=["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E","F"]
function comprobar(form){
tecleado=form.nif.value.toUpperCase();
caracteres=tecleado.length;
letrapuesta=tecleado.charAt(caracteres-1);
if(letrapuesta==letrapuesta.toLowerCase()){mal("Falta la letra del NIF",form);return false;}
numero=tecleado.substring(0,caracteres-1);
if(numero<100000){mal("NIF demasiado corto",form);return false;}
if (isNaN(numero)){mal("Número del NIF inválido",form);return false;}
if(letrapuesta.toUpperCase()!=letra[numero%23]){mal("NIF Inválido",form);return false;}
form.submit();
}
function mal(mensaje,form){
alert(mensaje);
form.nif.value="";
form.nif.focus();
}
</script>
</head>
<body style="font:bold 10px/10px verdana">
<form action=""></form>
<form action="javascript:alert('Mandando!!')" name="formulario" id="formulario">
Introduce el NIF: <input type="text" name="nif" size="10" maxlength="10" style="font: normal 11px/10px verdana;"><input type="button" name="enviar" onclick="comprobar(this.form)" style=" heigth:12px;font: normal 10px/10px verdana;" value="ENVIAR!"><br>
<font style="font:bold 9px/9px verdana">(12345678X)</font>
</form>
</body>
</html>
Esto tiene que ir a las mil maravillas!