JavaScript - Validación formulario

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

Validación formulario

Publicado por josema (6 intervenciones) el 02/03/2018 18:35:44
Hola, tengo un problemilla :)
Resulta que cuando el valor del check en el formulario está activado el campo valor se queda vacio, esto es correcto, pero me encuentro con que la función que tengo validarform no me deja enviar el formulario porque me dice que ese campo no puede estar vacio!! Entro en un bucle sin salida.... como puedo plantearlo para evitar este error?? no soy informático y ya me pierdo...
Adjunto pantallazo del formulario para mejor comprensión en el momento concreto y el código.
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
125
<html>
 
<head>
 
<title>Guardar datos en una base de datos</title>
 
<script>
 
function validarForm(formulario)
 
 {
 
  if(formulario.nombre.value.length==0) { //comprueba que no esté vacío
 
    formulario.nombre.focus();
 
    alert('No has puesto el NOMBRE DEL CLIENTE');
 
    return false; //devolvemos el foco
 
  }
 
  if(formulario.marca.value.length==0) { //comprueba que no esté vacío
 
    formulario.marca.focus();
 
    alert('No has puesto la MARCA DEL VEHICULO');
 
    return false;
 
  }
 
  if(formulario.matricula.value.length==0) { //comprueba que no esté vacío
 
    formulario.matricula.focus();
 
    alert('No has puesto la MATRICULA');
 
    return false;
 
  }
 
  if(formulario.valor.value.length==0) {  //comprueba que no esté vacío
 
    formulario.valor.focus();
 
    alert('Revisa el valor, puede que no lo hayas puesto o sea demasiado bajo');
 
    return false;
 
  }
 
  return true;
 
}
 
 
function habilitaDeshabilita(elemento)
{
    if (elemento.checked == true)
    {
		document.getElementsByName("formulario")[0].valor.disabled = true;
		document.getElementsByName("formulario")[0].valor.value = " ";
    }
 
    if (elemento.checked == false)
    {
		document.getElementsByName("formulario")[0].valor.disabled = false;
		document.getElementsByName("formulario")[0].valor.value = " ";
    }
 
}
</script>
 
 
 
</head>
 
 
 
<body>
 
<form method="post" action="registra.php" onsubmit="return validarForm(this);" name="formulario">
 
    <p>Nombre: <input type="text" name="nombre" size="20"></p>
 
    <p>Fecha: <input type="text" value="<?php echo date("Y-m-d H:i:s");?>" name="fecha" size="20" readonly="true">
 
	<p>Tipo de vehículo:
 
	<select name="vehiculo">
 
		<option value="Turismo">Turismo</option>
 
		<option value="Todoterreno">Todoterreno</option>
 
		<option value="Furgoneta">Furgoneta</option>
 
		<option value="Ciclomotor">Ciclomotor</option>
 
		<option value="Quad">Quad</option>
 
		<option value="Agricola">Maquinaria Agrícola</option>
 
	</select><br>
 
	<p>Marca y Modelo: <input type="text" name="marca" size="20"></p>
 
    <p>Matrícula: <input type="text" name="matricula" size="20"></p>
 
    <p>¿Hay factura con IVA?<input type="checkbox" name="factura" id="factura" value="off" onClick="habilitaDeshabilita(this)">
 
	<p>Valor Fiscal: <input type="number" name="valor" size="20"></p>
 
	<p>
 
    <p><input type="submit" value="Enviar">
 
	<p><input type="reset" name="limpiar" value="Borrar datos del formulario" />
 
</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