de esta forma podrías hacerlo funcionar luego de que ingrese el octavo dígito(si es que todos los números tienen 8 dígitos):
Cita: function calcular_letra()
{
if(document.form1.dni.value.length==8){
var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
var numero = form1.dni.value % 23;
form1.letra.value = letras.substring(numero,numero+1);
}
}
y para llamarlo cambia el metodo onblur por onkeyup:
Cita: onkeyup="calcular_letra()"