JavaScript - Dni javascript

   
Vista:

Dni javascript

Publicado por Julio (3 intervenciones) el 17/09/2014 20:14:46
Hola, estoy aprendiendo javascript y tengo que hacer un ejerccio, se trata de un script para saber la letra del deni teniendo en cuenta que ya tienes almacenados en una variable llamada numero los números introducidos por el usuario, y en una variable llamada letra la letra en mayúscula tecleada también por el mismo, elabora un pequeño script que:
a. En primer lugar (y en una sola instrucción) comprueba si el número es menor que 0 o mayor que 99999999.
Si ese es el caso, mostrar un mensaje al usuario indicando que el número proporcionado no es válido y el programa no muestra más mensajes.
b. Si el número es válido, calcula la letra que le corresponde según el método explicado anteriormente.
c. Una vez calculada la letra, se debe comparar con la letra indicada por el usuario. Si no coinciden, se muestra un mensaje al usuario diciéndole que la letra que ha indicado no es correcta. En otro caso, se muestra un mensaje indicando que el número y la letra de DNI son correctos.

Esto es lo que llevo, pero me he quedado atascado y no consigo continuar, no logro ver lo que estoy haciendo mal y cada vez estoy mas perdido. ¿Podrian decirme donde esta mi error y darme consejo?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Prueba 5. DNI</title>
 
     <script type="text/javascript">
          var letrasdni = [   "T" ,
                              "R" ,
                              "W" ,
                              "A" ,
                              "G" ,
                              "M" ,
                              "Y" ,
                              "F" ,
                              "P" ,
                              "D" ,
                              "X" ,
                              "B" ,
                              "N" ,
                              "J" ,
                              "Z" ,
                              "S" ,
                              "Q" ,
                              "V" ,
                              "H" ,
                              "L" ,
                              "C" ,
                              "K" ,
                              "E" ,
                              "T"    ] ;
    function validardni( numero1 , letra1 )
 
        {
 
          var letraresultante ;
          var numero1 = DNI ;
          var letra1 = letra ;
          var mensaje_dni ;
          var Posicion= dni % 23;
 
           if ( ( numero1 >= 9999999 ) && ( numero1 <= 99999999 ) ) {
             if ( letra1.toUpperCase() == ( letraresultante = (Posicion) ) ) {
 
                   mensaje_dni = " letra y numero correctos "
                 }
           else {
 
                 mensaje_dni = " numero incorrecto "
 
                 }
 
          return mensaje_dni
 
      }
 
     alert( validardni() )
 
 
    </script>
 
  </head>
 
  <body>
    <form name="Formulario">
    <p>DNI</p><br>
       <input type="text" Id="DNI" size= "9" >
       <input type="text" Id="letra" size= "1">
       <input type="button" value="validar" language="javascript" onclick=document.getElementById("validardni").value>
 
    </form>
 
 
  </body>
 
 </html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Dni javascript

Publicado por xve (1595 intervenciones) el 17/09/2014 22:08:42
Hola Julio, te recomiendo que tabules bien tu código, de esta manera te hubieras dado cuenta, de que no tienes todas las llaves {} bien cerradas.

Si revisas la consola del navegador, ahí te indica el error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dni javascript

Publicado por Julio (3 intervenciones) el 23/09/2014 13:02:13
ya he arreglado creo lo de las llaves
pero sigue sin funcionarme.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Prueba 5. DNI</title>
 
     <script type="text/javascript">
          var letrasdni = [   "T" ,
                              "R" ,
                              "W" ,
                              "A" ,
                              "G" ,
                              "M" ,
                              "Y" ,
                              "F" ,
                              "P" ,
                              "D" ,
                              "X" ,
                              "B" ,
                              "N" ,
                              "J" ,
                              "Z" ,
                              "S" ,
                              "Q" ,
                              "V" ,
                              "H" ,
                              "L" ,
                              "C" ,
                              "K" ,
                              "E" ,
                              "T"    ] ;
    function validardni( numero1 , letra1 )
        {
          var letraresultante ;
          var numero1 = DNI ;
          var letra1 = letra ;
          var mensaje_dni ;
          var Posicion= dni % 23;
 
           if ( ( numero1 >= 9999999 ) && ( numero1 <= 99999999 ) )
		   {
             if ( letra1.toUpperCase() == ( letraresultante = (Posicion) ) )
			 {
                   mensaje_dni = " letra y numero correctos "
                 }
		     }
           else {
                 mensaje_dni = " numero incorrecto "
                 }
          return mensaje_dni
          }
     alert( validardni() )
 
 
    </script>
 
  </head>
 
  <body>
    <form name="Formulario">
    <p>DNI</p><br>
       <input type="text" Id="DNI" size= "9" >
       <input type="text" Id="letra" size= "1">
       <input type="button" value="validar" language="javascript" onclick=document.getElementById("validardni").value>
 
    </form>
 
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Dni javascript

Publicado por xve (1595 intervenciones) el 23/09/2014 21:30:56
Hola Julio, tienes bastantes errores... los he ido solucionando sobre la marxa... aqui te adjunto el código, aunque se puede mejorar un poco, pero ahora ya funciona.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Prueba 5. DNI</title>
 
     <script type="text/javascript">
          var letrasdni = [   "T" ,
                              "R" ,
                              "W" ,
                              "A" ,
                              "G" ,
                              "M" ,
                              "Y" ,
                              "F" ,
                              "P" ,
                              "D" ,
                              "X" ,
                              "B" ,
                              "N" ,
                              "J" ,
                              "Z" ,
                              "S" ,
                              "Q" ,
                              "V" ,
                              "H" ,
                              "L" ,
                              "C" ,
                              "K" ,
                              "E" ,
                              "T"    ] ;
    function validardni()
	{
		var letraresultante ;
		var numero1 = document.getElementById("DNI").value;
		var letra1 = document.getElementById("letra").value;
		var mensaje_dni=" numero incorrecto ";
		var Posicion= parseInt(numero1) % 23;
 
		if ( ( numero1 >= 9999999 ) && ( numero1 <= 99999999 ) && ( letra1.toUpperCase() == ( letrasdni[Posicion] ) ) )
		{
			mensaje_dni = " letra y numero correctos "
		}
		alert(mensaje_dni);
	}
 
    </script>
 
  </head>
 
  <body>
    <form name="Formulario">
    <p>DNI</p><br>
       <input type="text" Id="DNI" size= "9" value="34738181">
       <input type="text" Id="letra" size= "1" value="q">
       <input type="button" value="validar" onclick="validardni()">
 
    </form>
 
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dni javascript

Publicado por Julio (3 intervenciones) el 23/09/2014 21:40:40
Muchas gracias, mas o menos me he dado cuenta de lo que he echo mal, pero, si no es mucho pedir y no es muy laborioso ¿seria posible que me explicases que he echo mal y por que no me funcionaba?
Como he decia al principio del post estoy aprendiendo y en el libro no estan las cosas todo lo claras que deberian estar y me gustaria conocer los errores que he cometido y que no he sido capaz de ver
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Dni javascript

Publicado por xve (1595 intervenciones) el 23/09/2014 22:07:02
Hola Julio, si ejecutas tu código y abres la consola del navegador, veras los errores que te van mostrando, y veras como lo he ido solucionando.

Si los comparas, veras las diferencias.

Si tienes alguna duda en cuanto a alguna modificación que haya realizado, sin problema te intento comentar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar