Foros del Web » Programando para Internet » Javascript »

Validar un formulario y luego abrir popup

Estas en el tema de Validar un formulario y luego abrir popup en el foro de Javascript en Foros del Web. Quetal, un saludo. Este es mi primer post aquí, aunque ya hace tiempo que he buscado soluciones a mis problemas en el foro, pues ahora ...
  #1 (permalink)  
Antiguo 16/07/2010, 15:40
Avatar de maximusc7  
Fecha de Ingreso: julio-2010
Ubicación: Guatemala
Mensajes: 10
Antigüedad: 8 años, 11 meses
Puntos: 0
Validar un formulario y luego abrir popup

Quetal, un saludo.

Este es mi primer post aquí, aunque ya hace tiempo que he buscado soluciones a mis problemas en el foro, pues ahora si ya estoy registrado.

Hay un tema antiguo que se llama igual ha este pero al final no lo resolvieron o por lo menos no esta publicada la solución, porque el que creo el tema ya no publico el codigo. En fin.

Tengo un formulario en html, logre que los campos se validaran antes de ser enviados con JavaScript, pero no hay manera de que logre que aparte de enviarse los camposya validados me habra un popup.

Este es el codigo que tengo antes del </header> para el popup:

Código:
<script language="JavaScript">
function Abrir_ventana (pagina) {
var opciones="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=316,height=234,top=50,left=400";
    window.open(pagina,"",opciones);
}
</script>
Este es el codigo que hace que se validen los campos, (esta despues del </header> aclaro por si sirbe de algo):

Código:
<script>
	    function checkear(){
		    if(document.getElementById('nombre').value==''){
			   alert('Debe ingresar su nombre');
			   return false;
			}
if(document.getElementById('direccion').value==''){
			   alert('Debe ingresar su Dirección');
			   return false;
			}	
			if(document.getElementById('email').value==''){
			   alert('Debe ingresar su E-mail');
			   return false;
			}	
			if(document.getElementById('empresa').value==''){
			   alert('Debe ingresar su Empresa');
			   return false;
			}	
			if(document.getElementById('telefono').value==''){
			   alert('Debe ingresar su Teléfono');
			   return false;
			}	
			if(document.getElementById('comentarios').value==''){
			   alert('Debe ingresar un comentario');
			   return false;
			}
		} </script>
Y este es el formulario, Odio tener que poner el codigo completo pero solo asi lo ven como es:

Código HTML:
<form action="creadorcontacto.php"  onSubmit="return checkear()"  method="post">
<input type="hidden" value="Del Formulario de contacto de misitio.com" name="subject" />
<input type="hidden" value="contactenos_iframe.html" target="_blank" name="redirect" />
<div style="width:542px; height: 274px;">
<div style="width:275px; height: 274px; float: left; text-align: left;">
<div style="width:auto; height:15px;"></div>
<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Nombre:</div>
<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="nombre" class="forma01_contacto" size="15" maxlength="256" id="nombre" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Direcci&oacute;n:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="direccion" class="forma01_contacto" size="15" maxlength="256" id="direccion" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Correo Electr&oacute;nico:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="email" class="forma01_contacto" size="15" maxlength="256" id="email" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Empresa:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="empresa" class="forma01_contacto" size="15" maxlength="256" id="empresa" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Teléfono:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;">
  <input name="telefono" class="forma01_contacto" size="15" maxlength="256" id="telefono" />
</div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Escribir a:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><select name="recipient" class="forma02">
      <option value="[email protected]">Información</option>
      <option value="[email protected]">Compras</option>
      <option value="[email protected]">Ventas</option>
      <option value="[email protected]">Finanzas</option>
    </select></div>

</div>
<div style="width:260px; height: 274px; float: right;"><div style="width:auto; height:15px;"></div>
<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Comentarios:</div><div style="width:250px; height:257px; float: left; text-align: left; margin-bottom: 5px;">
  <textarea name="comentarios" cols="24" rows="4" class="forma02" id="comentarios"></textarea>
  <span class="Estilo_font_01">Todos los campos son obligatorios.</span></div></div>
</div>
<div style="width:286px; height: 50px; margin: auto;">
<input name="reset" type="reset" class="botón" value="Borrar" />
 <input name="submit" type="submit" class="botón" value="Enviar" onclick="Abrir_ventana('correo_enviado.html')">
</div>
</form> 
En el boton de Enviar le tengo onclick="Abrir_ventana('correo_enviado.html')" pero lo que hace naturalmente es que al darle click me habre el popup y a la ves la ventana que se lanza cuando falta llenar uno de los campos, y lo que quiero es que ese popup se habra asta terminar de validar.

Espero que me puedan ayudar, de antemano muchas gracias por su tiempo.
  #2 (permalink)  
Antiguo 16/07/2010, 17:39
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 9 años
Puntos: 12
Respuesta: Validar un formulario y luego abrir popup

Código HTML:
		function Abrir_ventana (pagina) {
			var opciones="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=316,height=234,top=50,left=400";
			if (validacion=="") {
				alert ("Debe validar primero");
			} else {
				document.getElementById("validacion").ReadOnly=true;
			window.open(pagina,"",opciones);
}

			}
		}
Lamento escribirlo a la carrera y malo, es que recien voy a salir dle trabajo y voy con prisa, tienes la idea... completala, cualquier duda pregunta -en if validacion- pon lo que quieres que este validado antes de abrir el popup, si lo valida, abre el popup, asi va la idea, cualquier duda postea,

suerte
  #3 (permalink)  
Antiguo 16/07/2010, 19:47
Avatar de maximusc7  
Fecha de Ingreso: julio-2010
Ubicación: Guatemala
Mensajes: 10
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Validar un formulario y luego abrir popup

Gracias ciscoh4x0r, seria mucho pedir si fueras un poco más haya con el ejemplo, es que no acabo de entender si tengo que eliminar todo el codigo que tengo en js, y colocar el que me diste ya como idea. Mira que no soy muy bueno con esto del js.

Gracias.
  #4 (permalink)  
Antiguo 16/07/2010, 20:43
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 9 años
Puntos: 12
Respuesta: Validar un formulario y luego abrir popup

Hola amigo, te explico un poco mas detenidamente...

tu tienes esto:
Código PHP:
<script language="JavaScript">
function 
Abrir_ventana (pagina) {
var 
opciones="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=316,height=234,top=50,left=400";
    
window.open(pagina,"",opciones);
}
</script> 
Entonces, a ese codigo, le vas a agregar la condicional:

Código PHP:
if (validacion=="") {
    
alert ("Debe validar primero"); 

Donde el campo de validacion es tu validacion (valga la redundancia)... Es decir, tu quieres que abra la ventana emergente hasta que compruebe los datos... Entonces, cuando compruebas los datos, que variable llamas? cual es la que dice si los datos estan comprobados? entonces, la que uses... ponla en validacion...

Y la alerta, es el texto que quieres que salga, sino cumple con los requisitos de TU validacion -la anterior- me explico?, si me explico, entonces, el codigo debe ir mas o menos como te lo habia puesto.

Asi:

Código PHP:
        function Abrir_ventana (pagina) {
            var 
opciones="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=316,height=234,top=50,left=400";
            if (
validacion=="") {
                
alert ("Debe validar primero");
            } else {
                
document.getElementById("validacion").ReadOnly=true;
            
window.open(pagina,"",opciones);
}

            }
        } 
Solo reemplaza los valores de "validacion" y el texto de alerta, por lo que tu quieres, y listo.

Cualquier duda, pregunta.

Suerte.

EDITO:
Código PHP:
document.getElementById("validacion").ReadOnly=true
esta linea hace la comprobacion al hacer un "document.getElementById" lo que haces es obtener el elemento, es decir, la caja, el combo, lo que sea que llames por la id -el nombre que tu le diste- entonces si lo lee como verdadero, la validacion es aceptada y abre la ventana emergente. Sino, no la abre.
  #5 (permalink)  
Antiguo 16/07/2010, 21:28
Avatar de maximusc7  
Fecha de Ingreso: julio-2010
Ubicación: Guatemala
Mensajes: 10
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Validar un formulario y luego abrir popup

Perdona amigo, pero no hay forma de queme resulte, ya probe quitando y poniendo los codigos de diferentes formas pero nada.

Agregue las lineas de codigo que mencionas pero lo que pasa ahora es que ya no lanza el popup ni al principio como ya lo hacia, ni al final.

Este es el codigo a como lo tengo, primero esta la funcion que valida los campos, luego la que deberia habrir la ventana y de ultimo el form resumido:

Código:
<head>
<script language="JavaScript">
	    function checkear(){
		    if(document.getElementById('nombre').value==''){
			   alert('Debe ingresar su nombre');
			   return false;
			}
if(document.getElementById('direccion').value==''){
			   alert('Debe ingresar su Dirección');
			   return false;
			}	
			if(document.getElementById('email').value==''){
			   alert('Debe ingresar su E-mail');
			   return false;
			}	
			if(document.getElementById('empresa').value==''){
			   alert('Debe ingresar su Empresa');
			   return false;
			}	
			if(document.getElementById('telefono').value==''){
			   alert('Debe ingresar su Teléfono');
			   return false;
			}	
			if(document.getElementById('comentarios').value==''){
			   alert('Debe ingresar un comentario');
			   return false;
			}
			
}
		
	  </script>

<!--Abrir ventana-->
<script language="JavaScript">
function Abrir_ventana (pagina) {
var opciones="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=316,height=234,top=50,left=400";
if (validacion=="checkear") {
                alert ("Debe validar primero");
            } else {
                document.getElementById("checkear").ReadOnly=true; 
    window.open(pagina,"",opciones);
}
}
</script>

</head>

<body>
      

<div id="Iframe_Form01"><form action="creadorcontacto.php"  onSubmit="return checkear()"  method="post">
<input type="hidden" value="Del Formulario de contacto de Oreplast.com" name="subject" />
<input type="hidden" value="contactenos_iframe.html" target="_blank" name="redirect" />
<input name="nombre" class="forma01_contacto" size="15" maxlength="256" id="nombre" />
<div style="width:286px; height: 50px; margin: auto;">
<input name="reset" type="reset" class="botón" value="Borrar" />
 <input name="submit" type="submit" class="botón" value="Enviar" onclick="Abrir_ventana('correo_enviado.html')">
</div>
</form>
</body>
Quizas el problema este en el onclick o no se.

Podrias corregirme¿?, te lo agradesco mucho.

Última edición por maximusc7; 16/07/2010 a las 21:32 Razón: Aqui esta el ejemplo SIN las lineas que tu me diste: http://maximusc7.com/maximus01/contactenos.html
  #6 (permalink)  
Antiguo 16/07/2010, 22:06
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 9 años
Puntos: 12
Respuesta: Validar un formulario y luego abrir popup

Prueba asi: http://tinypaste.com/ac4fe5
  #7 (permalink)  
Antiguo 16/07/2010, 22:15
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 9 años
Puntos: 12
Respuesta: Validar un formulario y luego abrir popup

Para resumirtelo amigo, esta es la comprobacion que tendria que funcionarte:

Código PHP:
        function abrir_ventana(){
            var 
verificar=document.getElementById("campoaverificar").value;
            if (
verificar=="") { //aqui ve si esta vacio
                
alert ("Debe introducir antes los campos"); //aqui manda la alerta si estan vacios
            
} else {
                
document.getElementById("campoaverificar").ReadOnly=true//si el campo que verifico o los campos los lee como verdaderos entonces.
                
miPopup window.open("lapagina.php?campoaverficar="+verificar,"width=700,height=500,scrollbars=yes");
                
miPopup.focus();
            }
        } 

y en el boton que vas a usar: onClick="abre_ventana()"


Aqui solo verifica un solo campo. Llamo campo a los "fields" o campos de texto, cajas, combos, lo que uses, puedes hacer que verifique todos los campos o solo uno, o los que desees, si tienen algo escrito, entonces va abrir cuando envie, sino, no abre y con las verificaciones que tienes anteriormente deberia bastar.
  #8 (permalink)  
Antiguo 17/07/2010, 07:50
Avatar de maximusc7  
Fecha de Ingreso: julio-2010
Ubicación: Guatemala
Mensajes: 10
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Validar un formulario y luego abrir popup

Buenos días amigo.

Probe de nuevo y aun no funciona, primero tome el codigo que pusiste en http://tinypaste.com/ac4fe5 tal cual, y nada, me valida los campos pero no lanza el popup. Luego intente con el otro codigo, le agregue los campos a verificar y entonces ni valida ni tampoco habre el popup, ninguna de las dos cosas.

Tus lineas de codigo se ve que tienen logica, pero aun asi no me funciona, no se que podra ser la verdad, es frustrante.

Gracias por tu ayuda, no se si podras seguir con esto, pero es que si lo necesito.
  #9 (permalink)  
Antiguo 17/07/2010, 09:04
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 9 años
Puntos: 12
Respuesta: Validar un formulario y luego abrir popup

Hola amigo, descuida no hay problema nada mas que si demoro en contstar tus dudas es proque es dia sabado y manyana domingo yo descanso jajajaja

A ver...

Primero que nada ve esto: http://www.webestilo.com/foros/mensaje.phtml?foro=14&msg=56153

Eso es un problema similar en aspx, si te fijas, el hace que la validacion abra la ventana, -por eso creo que tiene que darle doble click al boton enviar para que le funcione- solo tienes que hacer una doble validacion y te funcionara,

Me explico mas detalladamente...

Pones el script para abrir la ventana y le agregas que solo abra si la otra validacion fue correcta.

Para que tu otra validacion no marque problemas, llamala validacion1 o algo asi...
Entonces, en la de abrir ventana le dices:

Código PHP:
        function abrir_ventana(){
            var 
verificar=document.getElementById("campoaverificar").value//document.getElementById -es para botener campos de elementos-  
// por eso quiza no te este funcionando, porque quiere verificar o todos los //campos o un solo campo, busca en las referencias de como obtenerlos todos o //como obtener el formulario. que como no me das mas datos no razono bien jajaja
            
if (verificar=="") { //aqui ve si esta vacio
                
alert ("Debe introducir antes los campos"); //aqui manda la alerta si estan vacios
            
} else {
                
document.getElementById("campoaverificar").ReadOnly=true//si el campo que verifico o los campos los lee como verdaderos entonces.
                
miPopup window.open("lapagina.php?campoaverficar="+verificar,"width=700,height=500,scrollbars=yes");
                
miPopup.focus();
            }
        } 
Entonces, no hagas que verifique un solo campo, puedes hacer que verifique el formulario de contacto, lo cual te funcionaria mucho mejor. Y si te da problema por usar dos verificaciones, y no sabe cual agarrar primero, entonces. haz que verifique los campos con php y que te verifique si el formulario es correcto con javascript.

Saludes.


EDITO: entonces, si haces la verificacion de los campos de tu formulario de una en php, aqui en onSubmit="return checkear()" llamas a la funcion de abrir la ventana emergente. O puedes probar agregando las dos en el submit -que de verdad NO SE si te funcionaria asi-, prueba y ve que tal. Te di las posibles soluciones que se me vienen a la cabeza de momento, dime como te fue y seguimos.
  #10 (permalink)  
Antiguo 17/07/2010, 09:25
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 9 años
Puntos: 12
Respuesta: Validar un formulario y luego abrir popup

Se me ocurrio esto, asumiendo que tu formulario tiene un nombre llamado: formulario.

Código PHP:
<script>
        function 
checkear(){
            if(
document.getElementById('nombre').value==''){
               
alert('Debe ingresar su nombre');
               return 
false;
            }
if(
document.getElementById('direccion').value==''){
               
alert('Debe ingresar su Dirección');
               return 
false;
            }    
            if(
document.getElementById('email').value==''){
               
alert('Debe ingresar su E-mail');
               return 
false;
            }    
            if(
document.getElementById('empresa').value==''){
               
alert('Debe ingresar su Empresa');
               return 
false;
            }    
            if(
document.getElementById('telefono').value==''){
               
alert('Debe ingresar su Teléfono');
               return 
false;
            }    
            if(
document.getElementById('comentarios').value==''){
               
alert('Debe ingresar un comentario');
               return 
false;
            }
        } else {
            
document.getElementById("formulario").readonly=true;
             
window.open("ventana_emergente.html,width=700,height=500")
        } 
</script> 

Y sino me equivoco en este metodo de validacion, se utiliza despues de todos los return false;
al final un return true;
  #11 (permalink)  
Antiguo 17/07/2010, 09:25
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 9 años
Puntos: 12
Respuesta: Validar un formulario y luego abrir popup

Y sino, se me ocurrio esto, trata con estas validaciones asi:
Solo agregale lo demas, que no lo recordaba que mas iba ademas de nombre, empresa, correo

Código PHP:
        function validar_y_abre()
            {
                var 
mensaje="";
                if (
document.getElementById("nombre").value==""mensaje+="  - Nombre\n";
                if (
document.getElementById("empresa").value==""mensaje+="  - empresa\n";
                if (
document.getElementById("correo").value==""mensaje+="  - correo\n";  //Puedes agregar debajo de esta las demas
                
if (mensaje!="") {
                    
alert("No ha completado lo siguiente:\n\n"+mensaje);
                } else {
                    
document.getElementById("formulario").submit();
                    
window.open("tu_ventana.php"width=700height=380");
                    window.focus();
                }
            } 
  #12 (permalink)  
Antiguo 17/07/2010, 11:05
Avatar de maximusc7  
Fecha de Ingreso: julio-2010
Ubicación: Guatemala
Mensajes: 10
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Validar un formulario y luego abrir popup

Quetal, probe como dices pero aun no funcionaba.

Por ahi me dieron una mano y ahora si valida y al final lanza el popup, pero el problema ahora es que ya no envia los datos del form,

Código:
<!--Abrir ventana-->
<script language="JavaScript">
 function checkear(){
		    if(document.getElementById('nombre').value==''){
			   alert('Debe ingresar su nombre');
			   return false;
			}
if(document.getElementById('direccion').value==''){
			   alert('Debe ingresar su Dirección');
			   return false;
			}	
			if(document.getElementById('email').value==''){
			   alert('Debe ingresar su E-mail');
			   return false;
			}	
			if(document.getElementById('empresa').value==''){
			   alert('Debe ingresar su Empresa');
			   return false;
			}	
			if(document.getElementById('telefono').value==''){
			   alert('Debe ingresar su Teléfono');
			   return false;
			}	
			if(document.getElementById('comentarios').value==''){
			   alert('Debe ingresar un comentario');
			   return false;
			}return true;
			}
		


</script>
<script language="JavaScript">function Abrir_ventana (pagina) {
var opciones="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=316,height=234,top=50,left=400";
    window.open(pagina,"",opciones);
}

</Script>
</head>

<body>

<div id="Contenedor_Info">
<div id="Iframe_Form01"><form id="form_contacto" action="creadorcontacto.php"  method="post">
<input type="hidden" value="Del Formulario de contacto de Oreplast.com" name="subject" />
<input type="hidden" value="contactenos_iframe.html" name="redirect" />
<div style="width:542px; height: 274px;">
<div style="width:275px; height: 274px; float: left; text-align: left;">
<div style="width:auto; height:15px;"></div>
<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Nombre:</div>
<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="nombre" class="forma01_contacto" size="15" maxlength="256" id="nombre" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Direcci&oacute;n:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="direccion" class="forma01_contacto" size="15" maxlength="256" id="direccion" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Correo Electr&oacute;nico:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="email" class="forma01_contacto" size="15" maxlength="256" id="email" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Empresa:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="empresa" class="forma01_contacto" size="15" maxlength="256" id="empresa" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Teléfono:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;">
  <input name="telefono" class="forma01_contacto" size="15" maxlength="256" id="telefono" />
</div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Escribir a:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><select name="recipient" class="forma02">
      <option value="[email protected]">Información</option>
      <option value="[email protected]">Compras</option>
      <option value="[email protected]">Ventas</option>
      <option value="[email protected]">Finanzas</option>
    </select></div>

</div>
<div style="width:260px; height: 274px; float: right;"><div style="width:auto; height:15px;"></div>
<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Comentarios:</div><div style="width:250px; height:257px; float: left; text-align: left; margin-bottom: 5px;">
  <textarea name="comentarios" cols="24" rows="4" class="forma02" id="comentarios"></textarea>
  <span class="Estilo_font_01">Todos los campos son obligatorios.</span></div></div>
</div>
<div style="width:286px; height: 50px; margin: auto;">
<input name="reset" type="reset" class="botón" value="Borrar" />
 <input name="submit" type="button" class="botón" value="Enviar" onclick="javascript:if(checkear()){Abrir_ventana('correo_enviado.html');document.getElementById('form_contacto').submit();}">
</div>
</form>
  #13 (permalink)  
Antiguo 17/07/2010, 20:09
Avatar de maximusc7  
Fecha de Ingreso: julio-2010
Ubicación: Guatemala
Mensajes: 10
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Validar un formulario y luego abrir popup

Ya se resolvio, con la ayuda de otro amigo. Mil gracias ciscoh4x0r
No todos le tienen paciencia a los novatos.

Voy a dejar el codigo completo por si a más de alguno le sirve, esta es la funcion que valida los campos.

Código:
<!--Abrir ventana-->
<script language="JavaScript">
 function checkear(){
		    if(document.getElementById('nombre').value==''){
			  return false;
			}
if(document.getElementById('direccion').value==''){
			 
			   return false;
			}	
			if(document.getElementById('email').value==''){
			 
			   return false;
			}	
			if(document.getElementById('empresa').value==''){
			   
			   return false;
			}	
			if(document.getElementById('telefono').value==''){
			 
			   return false;
			}	
			if(document.getElementById('comentarios').value==''){
			  
			   return false;
			}return true;
			}


</script>

Esta es la que habre la ventana o popup.

Código:
<script language="JavaScript">function Abrir_ventana (pagina) {
var opciones="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=316,height=234,top=50,left=400";
    window.open(pagina,"",opciones);
}
function enviar(){
document.gerElementById('registro').submit();
}
</script>
Y el formulario:

Código:
<form action="creadorcontacto.php"  method="post" id="registro" name="registro" >
<input type="hidden" value="Del Formulario de contacto de misitio.com" name="subject" />
<input type="hidden" value="contactenos_iframe.html" name="redirect" />
<div style="width:542px; height: 274px;">
<div style="width:275px; height: 274px; float: left; text-align: left;">
<div style="width:auto; height:15px;"></div>
<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Nombre:</div>
<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="nombre" class="forma01_contacto" size="15" maxlength="256" id="nombre" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Direcci&oacute;n:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="direccion" class="forma01_contacto" size="15" maxlength="256" id="direccion" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Correo Electr&oacute;nico:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="email" class="forma01_contacto" size="15" maxlength="256" id="email" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Empresa:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><input name="empresa" class="forma01_contacto" size="15" maxlength="256" id="empresa" /></div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Teléfono:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;">
  <input name="telefono" class="forma01_contacto" size="15" maxlength="256" id="telefono" />
</div>

<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Escribir a:</div>

<div style="width:250px; height:22px; float: left; text-align: left; margin-bottom: 5px;"><select name="recipient" class="forma02">
      <option value="[email protected]">Información</option>
      <option value="[email protected]">Compras</option>
      <option value="[email protected]">Ventas</option>
      <option value="[email protected]">Finanzas</option>
    </select></div>

</div>
<div style="width:260px; height: 274px; float: right;"><div style="width:auto; height:15px;"></div>
<div class="Estilo_font_01" style="width:250px; height:11px; float: left; text-align: left; margin-bottom: 4px;">Comentarios:</div><div style="width:250px; height:257px; float: left; text-align: left; margin-bottom: 5px;">
  <textarea name="comentarios" cols="24" rows="4" class="forma02" id="comentarios"></textarea>
  <span class="Estilo_font_01">Todos los campos son obligatorios.</span></div></div>
</div>
<div style="width:286px; height: 50px; margin: auto;">
<input name="reset" type="reset" class="botón" value="Borrar" />
 <input name="submit" type="submit" class="botón" value="Enviar" onclick="if(checkear()){Abrir_ventana('correo_enviado.html');}else{alert('Todos los datos son obligatorios');return false}">
</div>
</form>
Espero qu ea más de alguno le sirva. Salu2.

Última edición por maximusc7; 18/07/2010 a las 12:56 Razón: [resuelto]
  #14 (permalink)  
Antiguo 17/07/2010, 20:22
Avatar de ciscoh4x0r  
Fecha de Ingreso: junio-2010
Ubicación: Londres, Inglaterra
Mensajes: 300
Antigüedad: 9 años
Puntos: 12
Respuesta: Validar un formulario y luego abrir popup

Hola amigo, no hay problema, se hace lo que se puede...

Si, en el mensaje anterior te mencione, que te hacia falta un
Código PHP:
return true


Ya lo estructuraste bien, el problema era mas que todo de estructura, por eso no te funcionaba imagino.

Me alegra que lo hayas resuelto. Ponle a el tema [resuelto] por si alguien mas busca saber como, lo vea con facilidad.
  #15 (permalink)  
Antiguo 02/09/2010, 23:11
 
Fecha de Ingreso: septiembre-2010
Mensajes: 4
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Validar un formulario y luego abrir popup

Perdon que escriba en un tema ya resuelto, pero es que tengo una duda exactamente con este asunto. Mi duda es maximusc7 cual fue la funcion que pusiste en el popup, para que aparezcan los errores de los datos del formulario, porque tengo exactamente ese problema, soy nueva en esto y estoy entendiendo de a poco el tema. Gracias por el tiempo! Saludos

Etiquetas: campos, lanzar, popup, 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 06:25.