Foros del Web » Programando para Internet » Javascript »

Tengo dos formularios, como validar el segundo si lo ha hecho con el primero?

Estas en el tema de Tengo dos formularios, como validar el segundo si lo ha hecho con el primero? en el foro de Javascript en Foros del Web. Tengo dos formularios, como validar el segundo si lo ha hecho con el primero antes?. Es decir, que hasta que no rellene y dé al ...
  #1 (permalink)  
Antiguo 17/12/2005, 12:26
wpp
 
Fecha de Ingreso: noviembre-2003
Mensajes: 50
Antigüedad: 20 años, 5 meses
Puntos: 0
Tengo dos formularios, como validar el segundo si lo ha hecho con el primero?

Tengo dos formularios, como validar el segundo si lo ha hecho con el primero antes?.
Es decir, que hasta que no rellene y dé al submit del primero (cargará en ventana _blank), no le permita validar el segundo formulario que está debajo (que carga en ventana _self).
Algo así como que hasta que no valide el primer formulario y envíe, permanezca oculto el botón enviar del segundo, y tras hacerlo le aparezca activo este segundo botón, no sé es por dar ideas.
Gracias.
  #2 (permalink)  
Antiguo 17/12/2005, 12:52
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Si la validación está bien programada, debería estar hecha con el evento submit del formulario... pues desde el mismo script de la validación: <form onsubmit="return validar(this)"... puedes habilitar el botón submit del otro formulario:

function validar(f) {
//...
if (pasa_validación) document.forms.otro_formulario.boton_submit.disabl ed = false;
return pasa_validacion;
}

Por supuesto que ese botón submit tiene que tener el atributo disabled="disabled"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 17/12/2005, 13:26
wpp
 
Fecha de Ingreso: noviembre-2003
Mensajes: 50
Antigüedad: 20 años, 5 meses
Puntos: 0
Desacuerdo

Nada lo he probado y no me funciona.
El tema es que el primer formulario llama a la validación onClick="submit_page(this.form)" en el submit type="button".
He puesto dissabled en el submit del segundo formulario y:
Código:
<script language=JavaScript>
function validar(f) {
if (pasa_validacion) document.form.form1.submit.disabled = false;
return pasa_validacion;
</script>
Antes del segundo formulario llamado form1.
Y la cuestión es que claro está, se deshabilita el segundo submit pero no lo habilita al lanzar _blank el primer formulario.
  #4 (permalink)  
Antiguo 17/12/2005, 13:45
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Bueno, es evidente que no estás haciendo la validación correctamente.
El botón submit debe existir en un formulario bien hecho (lo podrán discutir, pero es lo correcto...) y la validación debe hacerse con el manejador de eventos onsubmit de la etiqueta form de ese formulario... La validación debe devolver false al no pasar y true al pasar... por eso el "return validar(this)"

Y pasa_validacion se supone que es el resultado de esa validación... por ejemplo, si quieres que sea obligatorio el campo nombre, puede ponerse:
pasa_validacion = f.nombre.value != "";

Espero haberte ayudado.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 17/12/2005, 14:31
wpp
 
Fecha de Ingreso: noviembre-2003
Mensajes: 50
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno a ver si alguien me echa otra mano con el tema, con otras ideas.
Gracias.
  #6 (permalink)  
Antiguo 17/12/2005, 16:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Has copiado mal, ya que es document.forms... (es una colección o array)...

Te voy a poner un ejemplo muy básico para que veas como se debe hacer y que la idea funciona:

Código:
<html>
	<head>
		<script type="text/javascript">
			function validar(f)	{
				pasa_validacion = f.dato.value != "";
				document.forms.f1.submit.disabled = !pasa_validacion;
				return pasa_validacion;
			}
		</script>
	</head>
	<body >
		<form target="_blank" action="prueba.html" method="get" onsubmit="return validar(this)">
			<input type="text" name="dato" value="" />
			<input type="submit" value="validar" />
		</form>
		<form name="f1" action="javascript: alert('Ok')" >
			<input type="submit" name="submit" disabled="disabled" />
		</form>
	</body>
</html>
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 17/12/2005, 17:05
wpp
 
Fecha de Ingreso: noviembre-2003
Mensajes: 50
Antigüedad: 20 años, 5 meses
Puntos: 0
Entiendo perfectamente tu código, te explico mi caso concreto.

Tengo un formulario llamado datos_generales que llama a la validación así:

Código:
<FORM name="datos_generales" target="_blank"  method="post" action="ir.jsp" >
<input type="button" value="Enviar y seguir" onclick="submit_page(this.form)"  name="button2">
Tengo un segundo formulario llamado form1 que llama a la validación así:

Código:
<form action="register.asp?mode=Register" id="form1" method="post" name="form1">
<input name="Submit" type="Submit" value="amigo" disabled="disabled" >

Bueno pues pongo:

Código:
<script type="text/javascript">
			function validar(f)	{
				pasa_validacion = f.dato.value != "";
				document.forms.form1.submit.disabled = !pasa_validacion;
				return pasa_validacion;
			}
		</script>
Al principio de los dos forms, y:

Código:
onsubmit="return validar(this)"
dentro del tag del primer <form> y claro está no habilita el submit del segundo.
Supongo que el problema debe estar en la llamada onclick que tengo en el primer form, supongo.
Venga a ver si nos acercamos al problema.
Ten en cuenta que el primer formulario tiene un javascript de validación muy completo llamado submit_page(this.form) y que me valida todos los campos.
No sería mejor intentar incluir en este javascript que valida el primer form, al final la opción
Código:
function validar(f)	{
				pasa_validacion = f.ocupacion.value != "";
				document.forms.form1.submit.disabled = !pasa_validacion;
				return pasa_validacion;
			}
Ajustada a alguno de mis valores que no queden en blanco p.ej. ocupacion.
Lo pruebo y falla, pero seguro estaré cerca.

Última edición por wpp; 17/12/2005 a las 17:29
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 11:35.