Foros del Web » Programando para Internet » Javascript »

Ayuda calculo letra DNI

Estas en el tema de Ayuda calculo letra DNI en el foro de Javascript en Foros del Web. Tengo el siguiente codigo que me calcula la letra despues de introducir los digitos, y me la escribe en el campo de texto correspondiente a ...
  #1 (permalink)  
Antiguo 16/05/2006, 16:16
 
Fecha de Ingreso: mayo-2006
Mensajes: 2
Antigüedad: 18 años
Puntos: 0
Ayuda calculo letra DNI

Tengo el siguiente codigo que me calcula la letra despues de introducir los digitos, y me la escribe en el campo de texto correspondiente a la letra.
El caso es que lo tengo con el evento onBlur, que para que la escriba tengo que salir del campo donde meto el dni, y lo que busco es que tras meter el ultimo digito me escriba la letra sin tener que salirme del campo, y si borrase un numero pues que se borrase tambien la letra.


<html>
<head>
<script>

function calcular_letra()
{
var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
var numero = form1.dni.value % 23;
form1.letra.value = letras.substring(numero,numero+1);

}
</script>
</head>
<form name="form1" action="">

D.N.I : <input type="text" name="dni" maxlength="8" size="8" onBlur="calcular_letra()"> -
<input type="text" name="letra" maxlength="1" size="1">
</form>

</body>
</html>
  #2 (permalink)  
Antiguo 16/05/2006, 17:07
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
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()"
__________________
by Capitán Buscapina
.
  #3 (permalink)  
Antiguo 17/05/2006, 03:50
 
Fecha de Ingreso: mayo-2006
Mensajes: 2
Antigüedad: 18 años
Puntos: 0
Muchas gracias, lo unico que he añadido a sido un else, para que en el caso de borrar un digito me ponga la cadena vacia.
  #4 (permalink)  
Antiguo 17/05/2006, 12:24
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Permitidme un apunte que limpia un poco el código:

function calcular_letra(){

var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
var f=document.forms['form1'];
var v=f['dni'].value;
f['letra'].value =(v.length==8)? letras.charAt(v%23):""

}

Y perdonad la intromisión!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:18.