Foros del Web » Programando para Internet » Javascript »

Cerrar ventana despues de enviar form

Estas en el tema de Cerrar ventana despues de enviar form en el foro de Javascript en Foros del Web. Hola, Tengo un JS en una ventana con formulario que lo que hace es verificar si estan completos los campos y si lo están, entonces ...
  #1 (permalink)  
Antiguo 08/12/2003, 09:39
Avatar de kvoloj  
Fecha de Ingreso: agosto-2003
Mensajes: 124
Antigüedad: 20 años, 9 meses
Puntos: 1
Cerrar ventana despues de enviar form

Hola,
Tengo un JS en una ventana con formulario que lo que hace es verificar si estan completos los campos y si lo están, entonces enviar el formulario. Me gustaria añadirle que una vez que envie el formulario se cierre la ventana. ¿Cómo puedo hacerlo? Os envio el script para que me indiqueis donde puedo añadirlo y cómo.
Muchas Gracias.

<script language=JavaScript>

function submit_page(formulario)
{
hayError = false;


var numlistas=0;

if (document.datos_generales.listas)
{
numlistas=document.datos_generales.listas.length;
}

// Comprueba que ha marcado alguna lista o categoría genérica


for (var k=0;k<numlistas;k++)
{

if (document.datos_generales.listas[k].checked) break;
if (k==document.datos_generales.listas.length-1)
{
alert("Debe marcar alguna lista de interes.");
hayError=true;
}
}


//Chequeamos que se ha seleccionado una edad





if(hayError == false && esBlanco(formulario.email))
{
alert("El campo direccion de e-mail no puede quedar en blanco.");
formulario.email.focus();
hayError = true;
}
if (hayError==false && ((formulario.pais.value=='') || (formulario.pais.value=='NULL') ))
{
alert("Debe seleccionar un pais");
hayError = true;
}
if (hayError==false)
{
if (CompruebaCp()== true)
hayError=true;
else
hayError=false;
}

//CHEQUEA LA VALIDEZ DE LOS CAMPOS
var validaEmail= esEmailValido(formulario.email.value);
if(hayError == false && validaEmail!=0 )
{
if (validaEmail==1) {

alert("No es una direccion de email valida.");

hayError = true;
}
if (validaEmail==2) {

alert("Email incorrecto. El campo email no puede contener espacios.");

hayError = true;
}

}
if(hayError == false && esMenorLongitud(formulario.email, 60) == false)
{

alert("La direccion de e-mail es demasiado largo.");


hayError = true;
}

// chequeo del sexo y la edad


if (hayError==false && (document.datos_generales.sexo[0].checked == false )
&& (document.datos_generales.sexo[1].checked == false ) )

{
alert ("selecciona tu sexo ");
hayError=true ;
}


if ( hayError== false && (document.datos_generales.fec_ncto.value=='sel') )

{

alert('Debes seleccionar tu edad');

document.datos_generales.fec_ncto.focus();

hayError='true';

}




if ( hayError== false && document.datos_generales.sector.value == '99' )
{
alert("Debes seleccionar tu Sector");
hayError="true";
}




if ( hayError== false && document.datos_generales.ocupacion.value == '99' )
{
alert("Debes seleccionar tu Ocupacion");
hayError="true";
}

if(hayError == false)
{
formulario.submit();
}
}

// CHEQUEO DE BLANCOS
function esBlanco(campo) {
if(campo.value == "")
return true;
else
for (var i=0;i<campo.value.length;i++)
if (campo.value.charAt(i)!=" ") return false;

return true;
}

//CHEQUEO DE LONGITUD
function esMenorLongitud(campo, longitud) {
valor = campo.value;

if(valor.length > longitud) {
return false;
}
return true;
}
//CHEQUEO DE EMAIL
function esEmailValido(email) // Devuelve los valores:0(correcto),1(incorrecto),2(con espacios)
{
if (email.indexOf(" ")!=-1) // Comprobamos que email no contenga espacios,tampoco en los laterales
return 2;
if (email.indexOf("@")==-1) // Comprobamos que exista al menos un carácter @
{
return 1;
}
else
{
var posarroba=email.indexOf("@");
var nombre=email.substring(0, posarroba);
var dominio=email.substring(posarroba+1);

// Comprobamos que nombre tenga al menos un carácter
if (nombre.length==0)
return 1;

// Comprobamos que nombre no sea un solo punto
if (nombre==".")
return 1;

// Comprobamos que dominio tenga al menos un carácter
if (dominio.length==0)
return 1

// Comprobamos que dominio tenga al menos existe un punto
if (dominio.indexOf(".")==-1)
return 1;

// Comprobamos que la ni la primera ni la última posición del dominio sea el punto
len_dom=dominio.length - 1;
if ((dominio.charAt(0)==".")||(dominio.charAt(len_dom )=="."))
return 1;

// Comprobamos que tanto nombre como dominio sólo cotengan carácteres válidos
if (CharInCorrectos(nombre)) return 1;
if (CharInCorrectos(dominio)) return 1;
}
return 0;
}

function CharInCorrectos(cadena)
{
validos="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmno pqrstuvwxyz0123456789-_.";

// Comprobamos que cadena no tenga algún carácter no contemplado
// en el string validos y que no existan dos puntos contiguos
for (i=0;i<cadena.length;i++)
{
if (validos.indexOf(cadena.charAt(i))==-1) return true;
if (cadena.charAt(i)==".")
if ((i!=cadena.length-1) && (cadena.charAt(i+1)=="."))
return true;
}
return false; // No se ha encontrado ninguna irregularidad
}


function CompruebaCp()
{
var pais = document.datos_generales.pais.value;
var cp = document.datos_generales.cp.value;
var longitud = document.datos_generales.cp.value.length;
if (cp=='' && pais=='ESP')
{
alert("Debes introducir el codigo postal");
hayError="true";
return true;
}
if (longitud != 5 && pais=='ESP')
{
alert("El codigo postal no es correcto");
hayError="true";
return true;
}
if (longitud==5 && pais=='ESP')
{
var pos0=parseInt(cp.charAt(0));
var pos1=parseInt(cp.charAt(1));
if ( (( pos0==5)&& (pos1 > 2)) || ( pos0 > 5 ) )
{
alert("El codigo postal no es correcto");
hayError="true";
return true;
}
validos="0123456789";
for (contador=0;contador<longitud;contador++)
{
if (validos.indexOf(cp.charAt(contador))==-1)
{
alert("El codigo postal no puede contener letras ");
hayError="true";
return true;
}
}
}

hayError="false";
return false;

}
</script>
  #2 (permalink)  
Antiguo 08/12/2003, 16:59
Avatar de atlante  
Fecha de Ingreso: julio-2002
Ubicación: Lima
Mensajes: 140
Antigüedad: 21 años, 9 meses
Puntos: 0
bueno vemos , primero te recominendo , darte un paseo por los faqs de java script , ya que las funciones que usas son muy largas , y en los faqs puedes econtrar funciones que te ahorren muchas lineas , respecto a lo de cerrar el for despues de enviar , bueno podria adjuntarse a este codigo , pero lo ideal seria que al momento que se envia el form a la pagina de servidor , esta responda cerrando la ventana:

el codigo seria asi :

window.opener
window.close();

close() es un metodo java script para cerrar ventanas , con esto puedes cerrar la ventana de tu form...
__________________
If you look, If you really read between the lines, You will see...
  #3 (permalink)  
Antiguo 09/12/2003, 05:32
Avatar de kvoloj  
Fecha de Ingreso: agosto-2003
Mensajes: 124
Antigüedad: 20 años, 9 meses
Puntos: 1
Muchas Gracias!
/a me funcionnó!

K
  #4 (permalink)  
Antiguo 04/04/2004, 06:46
Avatar de efect2000  
Fecha de Ingreso: agosto-2003
Ubicación: girona
Mensajes: 35
Antigüedad: 20 años, 8 meses
Puntos: 0
javascript:window.close();
gracias, yo tb buscaba esto. Muchas gracias.
toni
__________________
NO MAS GUERRAS NI SUFRIMIENTO NI MUERTES VIOLENTAS POR EL PLACER DE UNOS POCOS, TANTO CUESTA VIVIR EN PAZ?!?!?!?!?!?!?!
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 10:21.