Foros del Web » Programando para Internet » Javascript »

Script de validación y actualización de formulario

Estas en el tema de Script de validación y actualización de formulario en el foro de Javascript en Foros del Web. Hola a todos: Tengo un script que valida ciertos elementos de un formulario. Si todo es correcto establece la acción del formulario y, en caso ...
  #1 (permalink)  
Antiguo 07/12/2010, 11:57
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 5 meses
Puntos: 8
Pregunta Script de validación y actualización de formulario

Hola a todos:

Tengo un script que valida ciertos elementos de un formulario. Si todo es correcto establece la acción del formulario y, en caso contrario, aparece una ventana emergente indicando qué elementos se han consignado erróneamente.

El problema radica en que, cuando aparece la mencionada ventana y vuelve al formulario, todos los valores retornan a su posición inicial (es decir, como si hubiéramos refrescado la página), y lo que pretendo es que los nuevos valores se mantengan ya que puede darse el caso de que el resto del formulario esté bien y el usuario no tiene porqué volver a consignar dichos elementos.

El código que tengo es el siguiente:

Código HTML:
<html><head></head><body>
<script>
function validar()
{
	var cnt;
	cnt = 0;
	if (document.frm_miformulario.cbo_micombo.value==0)
	{
		cnt = ++cnt;
		alert("NO HAS HECHO UNA BUENA SELECCIÓN")
	}

	if (cnt == 0)
	{
		document.frm_miformulario.action = "comprobar.php";
	}
}
</script>
<form name="frm_miformulario" method="post">
<select name="cbo_micombo">
<option value=0>[Selecciona una opción]</option>
<option value=1>Verde</option>
<option selected value=2>Rojo</option>
</select>
<input type="submit" onclick="validar()">
</form>
</body></html> 
En este caso he puesto que la opción "Rojo" está seleccionada para que sea un valor tomado de una consulta de una base de datos.

De cualquier forma, me sucede lo mismo con campos de texto o checkboxes.

Agradezco cualquier sugerencia. Recibid un cordial saludo.
__________________
A. Uttranadhie
  #2 (permalink)  
Antiguo 07/12/2010, 12:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Script de validación y actualización de formulario

Hola:

No lo haces bien... además que si se desactiva javascript siempre se va enviar el form refrescando la página...

Se valida correctamente desde el propio tag form, retornando false cuando la validación falla...

<form onsubmit="return validar(this)" ...

y en validar algo así:

return (cbo_micombo.value==0);

Esto es básico, pero también vale para más campos y con alerta personalizada... yo suelo añadir mensajes a un array y se envía el form cuando el array se queda vacío:

errores = new Array()...

if (cbo_micombo.value==0 errores.push("eligió mal...");
...

if (errores.length > 0) alert(errores.join("|n"));
return (errores.length == 0);


Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 07/12/2010, 12:35
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: Script de validación y actualización de formulario

Hola, caricatos:

Lo primero agradecerte la pronta respuesta y tus sugerencias.

He probado lo que me dices pero sigo igual, probablemente algo debo tener mal escrito en el código. Te lo detallo:

Código HTML:
<html><head></head><body>
<script>
function validar()
{
	var cnt;
	cnt = 0;
	if (document.frm_miformulario.cbo_micombo.value==0)
	{
		cnt = ++cnt;
		alert("NO HAS HECHO UNA BUENA SELECCIÓN")
		return (document.frm_miformulario.cbo_micombo.value==0)
	}

	if (cnt == 0)
	{
		document.frm_miformulario.action = "comprobar.php";
	}
}
</script>
<form name="frm_miformulario" method="post" onsubmit="return validar(this)">
<select name="cbo_micombo">
<option value=0>[Selecciona una opción]</option>
<option value=1>Verde</option>
<option selected value=2>Rojo</option>
</select>
<input type="submit">
</form>
</body></html> 
Con respecto a agrupar los errores en una matriz, te tomo el consejo y trataré de aplicarlo.

Muchas gracias por tu atención y recibe un saludo.
__________________
A. Uttranadhie
  #4 (permalink)  
Antiguo 07/12/2010, 15:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Script de validación y actualización de formulario

Hola:

Lo del this es para simplificar. y revisando...

Código:
<html><head></head><body>
<script type="text/javascript">
function validar(f)	{
	if (f.cbo_micombo.value == "0")
		alert("NO HAS HECHO UNA BUENA SELECCIÓN");
	return (f.cbo_micombo.value != "0")
}
</script>
<form name="frm_miformulario" method="post" action="comprobar.php"onsubmit="return validar(this)">
<select name="cbo_micombo">
<option value="0">[Selecciona una opción]</option>
<option value="1">Verde</option>
<option selected value="2">Rojo</option>
</select>
<input type="submit">
</form>
</body></html>
Fíjate que la condición no es la correcta.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 07/12/2010, 18:26
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 5 meses
Puntos: 8
De acuerdo Respuesta: Script de validación y actualización de formulario

Hola, de nuevo, caricatos:

Esta vez ya funciona y creo que lo he comprendido.

Muchas gracias por tu ayuda y recibe un saludo.
__________________
A. Uttranadhie

Etiquetas: validar, formulario
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 01:44.