JavaScript - Problema con las validaciones

 
Vista:

Problema con las validaciones

Publicado por danielkrak (2 intervenciones) el 20/04/2017 21:13:44
Saludos gente
Veréis tengo un problema, tengo un formulario a rellenar, con unas reglas de validación, pero no respeta las reglas definidas, solo respeta la norma de cuando el campo del nombre se queda vacío y el de plataforma sin seleccionar, si el precio o la cantidad se quedan vacíos, muestra el error que tiene que mostrar pero lo sube a la base de datos igualmente, y no se porque lo sube si salta la regla de validación.
Alguien podría ayudarme?

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
<script type="text/javascript" language="javascript">
 
	function numeros(e){
		var numKey;
		if (window.event) {
        	numKey = e.which;
        }
        else {
        	numKey = e.keyCode;
        }
        if ((numKey > 47 && numKey < 58) || numKey == 8 || numKey == 13 || numKey == 46) {
        	return true;
        }
        else {
        	return false;
        }
 
	}
	function confirma() {
    	if (confirm("Realizar compra?")) {
    		validacion();
    	}
   		else {	}
    }
 
	function validacion(){
		var nombre=document.formCompra.txtJuegoC;
		var plataforma=document.formCompra.lstPlatafC;
		var precio=document.formCompra.txtPrecioC.value;
		var cant=document.formCompra.txtCantC.value;
 
		if(!nombre.value){
			document.getElementById('error').innerHTML="Introduce el nombre del juego";
			nombre.focus();
		}
		else if(plataforma.value==0){
			document.getElementById('error').innerHTML="Escoge el tipo de plataforma del juego";
			plataforma.focus();
		}
		else if(precio.length==0){
			document.getElementById('error').innerHTML="Introduce el precio a pagar";
		}
		else if(cant.length==0){
			document.getElementById('error').innerHTML="Introduce la cantidad a comprar";
		}
		else{
			document.formCompra.submit();
		}
	}
</script>
 
</head>
 
<body>
<div class="estiloCompra">
	<h2>Introduce los datos del juego a comprar</h2>
	<p id="error"></p>
	<form name="formCompra" method="post" action="compra.php">
		<table style="width: 40%">
			<tr>
				<td>Juego</td>
				<td><input name="txtJuegoC" type="text" /></td>
			</tr>
			<tr>
				<td>Plataforma</td>
				<td><select name="lstPlatafC">
					<option value="0">Seleccione una plataforma...</option>
					<option value="N3DS">N3DS</option>
					<option value="PS4">PS4</option>
					<option value="XBOXOne">XBOX one</option>
					<option value="Switch">Switch</option>
					<option value="PSVita">PSVita</option>
					<option value="PC">PC</option>
				</select></td>
			</tr>
			<tr>
				<td>Precio</td>
				<td><input name="txtPrecioC" type="text" onKeyPress="return numeros(event);"/></td>
			</tr>
			<tr>
				<td>Genero</td>
				<td><input name="txtGenero" type="text" /></td>
			</tr>
 
			<tr>
				<td>Cantidad</td>
				<td><input name="txtCantC" type="text" onKeyPress="return numeros(event);"/></td>
			</tr>
 
			<tr>
				<td><input name="btCompra" type="submit" value="Confirmar compra" onclick="confirma();return false;"/></td>
			</tr>
		</table>
	</form>
	<p>	<input name="btVolver" type="button" value="Volver al menu" onclick="location.href='http://localhost:8081/proyectoPHP/Inicio.html'"/></p>
</div>
</body>
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 Alejandro
Val: 477
Bronce
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con las validaciones

Publicado por Alejandro (130 intervenciones) el 21/04/2017 00:14:35
Hola, modifique un poco tu codigo, prueba con esto:

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
<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8">
	<title>Validaciones JS</title>
</head>
 
<body>
<div class="estiloCompra">
	<h2>Introduce los datos del juego a comprar</h2>
	<p id="error"></p>
	<form name="formCompra" method="post" action="compra.php">
		<p> * Campo obligatorio </p>
		<table style="width: 40%">
			<tr>
				<td>Juego * </td>
				<td><input name="txtJuegoC" type="text" /></td>
			</tr>
			<tr>
				<td>Plataforma * </td>
				<td><select name="lstPlatafC">
					<option value="">Seleccione una plataforma...</option>
					<option value="N3DS">N3DS</option>
					<option value="PS4">PS4</option>
					<option value="XBOXOne">XBOX one</option>
					<option value="Switch">Switch</option>
					<option value="PSVita">PSVita</option>
					<option value="PC">PC</option>
				</select></td>
			</tr>
			<tr>
				<td>Precio *</td>
				<td><input name="txtPrecioC" type="text" onkeypress="return numeros(event);"/></td>
			</tr>
			<tr>
				<td>Genero * </td>
				<td><input name="txtGenero" type="text" /></td>
			</tr>
 
			<tr>
				<td>Cantidad * </td>
				<td><input name="txtCantC" type="text" onkeypress="return numeros(event);"/></td>
			</tr>
 
			<tr>
				<td><input name="btCompra" type="submit" value="Confirmar compra" onclick="confirma();return false;"/></td>
			</tr>
		</table>
	</form>
	<p>	<input name="btVolver" type="button" value="Volver al menu" onclick="location.href='http://localhost:8081/proyectoPHP/Inicio.html'"/></p>
</div>
 
<script type="text/javascript" language="javascript">
 
	function numeros(e){
		var numKey = e.which || e.keyCode;
 
        if ((numKey > 47 && numKey < 58) || numKey == 8 || numKey == 13 || numKey == 46) {
        	return true;
        }
        return false;
	}
 
	function confirma() {
    	if (confirm("Realizar compra?")) {
    		validacion();
    	}
    }
 
	function validacion() {
		var nombre=document.formCompra.txtJuegoC;
		var plataforma=document.formCompra.lstPlatafC;
		var precio=document.formCompra.txtPrecioC.value;
		var cant=document.formCompra.txtCantC.value;
 		var isValid = true;
 		document.getElementById('error').innerHTML = '';
 
		if (!nombre.value) {
			document.getElementById('error').innerHTML="<p>Introduce el nombre del juego</p>";
			isValid = false;
		}
 
		if (plataforma.value==="") {
			document.getElementById('error').innerHTML+="<p>Escoge el tipo de plataforma del juego</p>";
			isValid = false;
		}
 
		if (precio.length===0) {
			document.getElementById('error').innerHTML+="<p>Introduce el precio a pagar</p>";
			isValid = false;
		}
 
		if (cant.length==0) {
			document.getElementById('error').innerHTML+="<p>Introduce la cantidad a comprar</p>";
			isValid = false;
		}
 
		if (isValid) {
			alert('Formulario enviado');
			// document.formCompra.submit();
		}
	}
</script>
</body>
</html>

Nos comentas
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

Problema con las validaciones

Publicado por danielkrak (2 intervenciones) el 21/04/2017 17:42:36
Gracias compañero, pero ya está resuelto, resulta que mi codigo estaba bien, pero no se que pasa que a veces no que no detecta los cambios que hago en el archivo. lo explico: el problema me lo daba ayer por la noche, y hoy por la mañana si que funcionaban las validaciones sin que haya tocado nada y es muy raro porque con los estilos me hace lo mismo: los errores me los muestra con letras rojas y en negrita (lo tengo asi en un css) pero si lo pongo en azul, sigue saliendo rojo es muy raro

Ahora estoy con las reglas de validacion de un formulario de venta y me pasa lo mismo, tengo las reglas y de momento no les hace ni caso, y las copie y pegue del otro formulario (cambiando los nombres correctamente)
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