Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/12/2003, 09:39
Avatar de kvoloj
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>