JavaScript - JAVASCRIPT DNI AYUDA URGENTE

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

JAVASCRIPT DNI AYUDA URGENTE

Publicado por Paloma Arevalo (5 intervenciones) el 02/03/2021 11:42:45
Buenos días,

Tengo este código en el que una vez calculada la letra del DNI me piden lo siguiente:

Se mostrará en la propia página la letra resultado (utilizando funciones del
DOM) usando un tipo de letra grande, mínimo "h1".
Si la letra introducida por el usuario no coincide con la calculada se mostrará
en la propia página con un formato "h3" en rojo y el mensaje en verde en caso
contrario.

No sé como indicarlo!!! Podéis ayudarme? Gracias

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<!DOCTYPE html>
<html lang="es">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DNI</title>
 
</head>
 
<body>
 
 
    <form id="formulario" name="formulario" method="POST" action="javascript:calcula()" ; style="text-align:center;">
        <fieldset id="DNI" style="margin-top:1em;">
            <label for="dni"><h2>Introduzca DNI con letra</h2></label>
            <div style="clear:both;"></div>
            <table style="width:60%;margin:auto;">
                <tr>
                    <td style="width:80%">Número</td>
                    <td style="width:20%">Letra</td>
                </tr>
                <tr>
                    <td>
                        <!--Pido número-->
                        <input type="text" id="dniNumero" name="dniNumero" maxlength="8" style="font-size: 2.5rem; width: 100%; text-align:center">
                    </td>
                    <td>
                        <!--Pido letra-->
                        <input type="text" id="dniLetra" name="dniLetra" maxlength="1" style="font-size: 2.5rem; width: 100%; text-align:center">
                    </td>
                </tr>
            </table>
            <br />
            <!--lo envío-->
            <input id="submit" name="submit" type="submit" value="Calcular Letra DNI" title="Calcular Letra DNI" accesskey="n">
 
            <br />
            <table style="width:60%;margin:auto;">
                <tr>
                    <td style="width:80%">Letra correcta</td>
                    <td style="width:20%">Letra introducida</td>
                </tr>
                <tr>
                    <td>
                        <!--aparece letra calculada correcta-->
                        <input type="text" id="letraCalculada" name="letraCalculada" style="font-size: 2.5rem; padding: 0.5em 0em; margin: 0.5em 0em; text-align: center; background-color: white; border-width: 0px; " title=" DNI" readonly="">
                    </td>
                    <td>
               ]  <!--aparece letra introducida pero no sé como ponerlo-->
                        <input type="text" id="letraIntroducida" name="letraIntroducida" style="font-size: 2.5rem; padding: 0.5em 0em; margin: 0.5em 0em; text-align: center; background-color: white; border-width: 0px; " title=" DNI" readonly="">
                    </td>
                </tr>
 
            </table>
        </fieldset>
    </form>
 
 
    <script type="text/javascript">
        document.getElementById('limpiar').addEventListener('click', function() {
            document.getElementById('formulario').reset();
            document.getElementById('letraCalculada').style.backgroundColor = 'white';
        });
 
        function calcula() {
            dniNumero = document.getElementById('dniNumero').value;
            dniLetra = document.getElementById('dniLetra').value;
 
            //Error de entrada vacía con ventana emergente
            if (dniNumero.length == 0) {
                alert("El numero no puede estar vacio.");
                document.getElementById('formulario').reset(); //borra entrada
 
                //Error de caracteres con ventana emergente
            } else if (isNaN(dniNumero)) {
                alert("El numero no pueden ser letras o símbolos.");
                document.getElementById('dniNumero').value = "";
                document.getElementById('formulario').reset(); //borra entrada
 
                //Error de entrada vacía con ventana emergente
            } else if (dniLetra.length == 0) {
                alert("La letra no puede estar vacia.");
                document.getElementById('formulario').reset(); //borra entrada
 
                //Error de caracteres con ventana emergente
            } else if (!isNaN(dniLetra)) {
                alert("La letra no puede ser un numero.");
                document.getElementById('dniLetra').value = "";
                document.getElementById('dniLetra').focus();
                document.getElementById('formulario').reset(); //borra entrada
 
 
            } else {
                //Calculo letra
                resultado = document.getElementById('letraCalculada');
                var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'];
                var letraGenerada = letras[dniNumero % 23];
 
                resultado.value = letraGenerada;
                // si es correcta aparece la letra en verde H3
                if (dniLetra.toUpperCase() == letraGenerada) {
                    resultado.style.color = "green";
                    resultado.style.fontSize = "1.17em";
                    resultado.style.fontWeight = "bolder";
                    //Si es incorrecta aparece en rojo H3
                } else {
                    resultado.style.color = "red";
                    resultado.style.fontSize = "1.17em";
                    resultado.style.fontWeight = "bolder";
                    alert("La letra no es válida.");
 
                }
            }
 
        }
        document.getElementById('dniNumero').focus();
    </script>
 
 
</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 Gio
Val: 368
Bronce
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

JAVASCRIPT DNI AYUDA URGENTE

Publicado por Gio (79 intervenciones) el 02/03/2021 14:01:00
En la línea 105 de tu código, tienes que colocar resultado.style.fontSize = "2em";, 2em es el tamaño de <H1>

Edité tu código y quedó así:
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<!DOCTYPE html>
<html lang="es">
 
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DNI</title>
 
</head>
 
<body>
 
 
<form id="formulario" name="formulario" method="POST" action="javascript:calcula()" ; style="text-align:center;">
	<fieldset id="DNI" style="margin-top:1em;">
	<label for="dni"><h2>Introduzca DNI con letra</h2></label>
	<div style="clear:both;"></div>
	<table style="width:60%;margin:auto;">
	<tr>
	<td style="width:80%">Número</td>
	<td style="width:20%">Letra</td>
	</tr>
	<tr>
	<td>
	<!--Pido número-->
	<input type="text" id="dniNumero" name="dniNumero" maxlength="8" style="font-size: 2.5rem; width: 100%; text-align:center">
	</td>
	<td>
	<!--Pido letra-->
	<input type="text" id="dniLetra" name="dniLetra" maxlength="1" style="font-size: 2.5rem; width: 100%; text-align:center">
	</td>
	</tr>
	</table>
	<br />
	<!--lo envío-->
	<input id="submit" name="submit" type="submit" value="Calcular Letra DNI" title="Calcular Letra DNI" accesskey="n">
 
	<br />
	<table style="width:60%;margin:auto;">
	<tr>
	<td style="width:80%">Letra correcta</td>
	<td style="width:20%">Letra introducida</td>
	</tr>
	<tr>
	<td>
	<!--aparece letra calculada correcta-->
	<input type="text" id="letraCalculada" name="letraCalculada" style="font-size: 2.5rem; padding: 0.5em 0em; margin: 0.5em 0em; text-align: center; background-color: white; border-width: 0px; " title=" DNI" readonly="">
	</td>
	<td>
	] <!--aparece letra introducida pero no sé como ponerlo-->
	<input type="text" id="letraIntroducida" name="letraIntroducida" style="font-size: 2.5rem; padding: 0.5em 0em; margin: 0.5em 0em; text-align: center; background-color: white; border-width: 0px; " title=" DNI" readonly="">
	</td>
	</tr>
 
	</table>
	</fieldset>
</form>
 
 
<script type="text/javascript">
document.getElementById('limpiar').addEventListener('click', function() {
document.getElementById('formulario').reset();
document.getElementById('letraCalculada').style.backgroundColor = 'white';
});
 
function calcula() {
dniNumero = document.getElementById('dniNumero').value;
dniLetra = document.getElementById('dniLetra').value;
 
//Error de entrada vacía con ventana emergente
if (dniNumero.length == 0) {
	alert("El numero no puede estar vacio.");
	document.getElementById('formulario').reset(); //borra entrada
 
	//Error de caracteres con ventana emergente
	} else if (isNaN(dniNumero)) {
		alert("El numero no pueden ser letras o símbolos.");
		document.getElementById('dniNumero').value = "";
		document.getElementById('formulario').reset(); //borra entrada
 
	//Error de entrada vacía con ventana emergente
	} else if (dniLetra.length == 0) {
		alert("La letra no puede estar vacia.");
		document.getElementById('formulario').reset(); //borra entrada
 
		//Error de caracteres con ventana emergente
		} else if (!isNaN(dniLetra)) {
		alert("La letra no puede ser un numero.");
		document.getElementById('dniLetra').value = "";
		document.getElementById('dniLetra').focus();
		document.getElementById('formulario').reset(); //borra entrada
 
 
	} else {
		//Calculo letra
		resultado = document.getElementById('letraCalculada');
		letraIntroducida = document.getElementById('letraIntroducida');
		var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'];
		var letraGenerada = letras[dniNumero % 23];
 
		resultado.value = letraGenerada;
		letraIntroducida.value = dniLetra;
 
	// si es correcta aparece la letra en verde H3
	if (dniLetra.toUpperCase() == letraGenerada) {
		resultado.style.color = "green";
		resultado.style.fontSize = "2em";
		resultado.style.fontWeight = "bolder";
		//Si es incorrecta aparece en rojo H3
		} else {
		resultado.style.color = "red";
		resultado.style.fontSize = "1.17em";
		resultado.style.fontWeight = "bolder";
		alert("La letra no es válida.");
 
	}
}
 
}
document.getElementById('dniNumero').focus();
</script>
 
 
</body>
 
</html>

Realicé cambios en las líneas 98, 103 y 108.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 9
Ha aumentado su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

JAVASCRIPT DNI AYUDA URGENTE

Publicado por Paloma (5 intervenciones) el 02/03/2021 14:34:55
Muchísimas gracias!!!

No veía como indicar que apareciera en pantalla la letra introducida

Saludos
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