Foros del Web » Creando para Internet » Flash y Actionscript »

duda, formulario flash

Estas en el tema de duda, formulario flash en el foro de Flash y Actionscript en Foros del Web. Hola, estoy haciendo un formulario em flash 8 y he tenido problemas con la validacion del e-mail dentro del mismo formulario, cuando lo pruebo y ...
  #1 (permalink)  
Antiguo 25/02/2007, 21:18
 
Fecha de Ingreso: julio-2006
Mensajes: 32
Antigüedad: 17 años, 9 meses
Puntos: 0
duda, formulario flash

Hola, estoy haciendo un formulario em flash 8 y he tenido problemas con la validacion del e-mail dentro del mismo formulario, cuando lo pruebo y pongo un email real siempre me manda un error, y que escriba una direccion de correo valida, aunque la direccion de correo que escribo es una verdadera. la verdad no entiendo mucho aunque se que el error esta en el action script en la parte de validación. a continuación mando el script para que lo revisen y me digan que esta mal. (He probado eliminando esta parte para evr si el resto del formulario se envia y funciona bien)


stop();
System.useCodepage = true;
import mx.controls.*;

nombre_txt.tabIndex = 1;
apellidos_txt.tabIndex = 2;
mail_txt.tabIndex = 3;
producto_cmb.tabIndex = 4;
buscadores_rdo.tabIndex = 5;
publicidad_rdo.tabIndex = 6;
otros_rdo.tabIndex = 7;
otros_txt.tabIndex = 8;
info_chk.tabIndex = 9;
reset_btn.tabIndex = 10;
enviar_btn.tabIndex = 11;

focusManager.defaultPushButton = enviar_btn;
Selection.setFocus(nombre_txt);

var escuchadorLimpiar:Object = new Object();
escuchadorLimpiar.click = function(evt:Object) {
nombre_txt.text = "";
apellidos_txt.text = "";
mail_txt.text = "";
producto_cmb.selectedIndex = 0;
buscadores_rdo.selected = true;
otros_txt.text = "";
otros_txt.editable = false;
info_chk.selected = true;
}
reset_btn.addEventListener("click", escuchadorLimpiar);

var escuchadorOtros:Object = new Object();
escuchadorOtros.click = function(evt:Object) {
if (otros_rdo.selected) {
otros_txt.editable = true;
Selection.setFocus(otros_txt);
}
else {
otros_txt.text = "";
otros_txt.editable = false;
}
}
encontrar.addEventListener("click", escuchadorOtros);

var escuchadorEnvia:Object = new Object();
escuchadorEnvia.click = function(evt:Object) {
// si el nombre está en blanco salta un aviso
if (nombre_txt.text.length == 0) {
Alert.show("Introduzca su nombre", "Error", Alert.OK);
Selection.setFocus(nombre_txt);
return false;
}
// si los apellidos están en blanco salta un aviso
if (apellidos_txt.text.length == 0) {
Alert.show("Introduzca sus apellidos", "Error", Alert.OK);
Selection.setFocus(apellidos_txt);
return false;
}


// función para validar el mail
function isMail(mail:String) {
// indexOf devuelve la primera posición de la cadena indicada en el string, la primera posición es 0
// lastIndexOf devuelve la última posición de la cadena indicada en el string
if (mail.indexOf("@") > 0 && mail.indexOf("@") == mail.lastIndexOf("@")) {
// si la @ se encuentra al menos en posición 1 y no hay dos @
if (mail.lastIndexOf(".") > mail.indexOf("@") + 1 && mail.lastIndexOf(".") < mail.length - 2) {
// si el último . se encuentra después de la @ + 1 y después de éste hay al menos dos caracteres
return true;
}
else {
return false;
}
}
else {
return false;
}
}
// si el email no es válido salta un aviso
if (!isMail(mail_txt.text)) {
Alert.show("Introduzca un correo electrónico válido", "Error", Alert.OK);
Selection.setFocus(mail_txt);
return false;
}
// si el mensaje está en blanco salta un aviso
if (otros_rdo.selected && otros_txt.text.length == 0) {
Alert.show("Indique dónde nos encontró", "Error", Alert.OK);
Selection.setFocus(otros_txt);
return false;
}

// si ha llegado hasta aquí, pasamos a enviar
var envio:LoadVars = new LoadVars();

// rellenamos las variables
envio.nombre = nombre_txt.text;
envio.apellidos = apellidos_txt.text;
envio.email = mail_txt.text;
envio.producto = producto_cmb.selectedItem.data;
envio.nombre = nombre_txt.text;
if (buscadores_rdo.selected) {
envio.encontrar = buscadores_rdo.data;
}
else if (publicidad_rdo.selected) {
envio.encontrar = publicidad_rdo.data;
}
else if (otros_rdo.selected) {
envio.encontrar = otros_txt.text;
}
envio.masinfo = info_chk.selected;

// definimos el onLoad de envio
envio.onLoad = function(exito:Boolean) {
if (exito) {
nombre_txt.text = "";
apellidos_txt.text = "";
mail_txt.text = "";
producto_cmb.selectedIndex = 0;
buscadores_rdo.selected = true;
otros_txt.text = "";
otros_txt.editable = false;
info_chk.selected = true;
}
else {
Alert.show("Ha habido un error en el envío", "Error");
}
}

// enviamos las variables al archivo PHP
envio.sendAndLoad("enviar_mail.php", envio, "POST");

Selection.setFocus(nombre_txt);
}
enviar_btn.addEventListener("click", escuchadorE



muchas gracias
  #2 (permalink)  
Antiguo 26/02/2007, 08:44
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 17 años, 6 meses
Puntos: 30
Re: duda, formulario flash

el error esta el el if
Código:
function isMail(mail:String) {
	// indexOf devuelve la primera posición de la cadena indicada en el string, la primera posición es 0
	// lastIndexOf devuelve la última posición de la cadena indicada en el string
	if (mail.indexOf("@")>0 && mail.indexOf("@") == mail.lastIndexOf("@")) {
		// si la @ se encuentra al menos en posición 1 y no hay dos @
		if (mail.lastIndexOf(".")>mail.indexOf("@")+1 && mail.lastIndexOf(".")<mail.length-2) {
			// si el último . se encuentra después de la @ + 1 y después de éste hay al menos dos caracteres
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}
if (!isMail("[email protected]")) {
//sumale el operador NOT logico "!"
	trace("Esto correo es invalido");
	Alert.show("Introduzca un correo electrónico válido", "Error", Alert.OK);
	Selection.setFocus(mail_txt);
	return false;
} else {
	trace("Este correo es correcto");
}

nota: el ultimo else yo se lo agregue se supone que ahi deberia ir el codigo que envia las variables al php
  #3 (permalink)  
Antiguo 26/02/2007, 15:14
 
Fecha de Ingreso: julio-2006
Mensajes: 32
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: duda, formulario flash

hola muchas gracias por responder, sabes que no me resultalo q hice.. quizas lo hago mal.. podrias se un poquito mas especifico en lo q tengo q corregir ??

soy novatita en esto de formularios,.. por favor
  #4 (permalink)  
Antiguo 26/02/2007, 16:03
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 17 años, 6 meses
Puntos: 30
Re: duda, formulario flash

mira agrega un else a tu if y en ese else pon rl codigo que hara si el correo es correcto mira asi yo le hice
(esto en un fla nuevo y usaremos tu funcion)
pasos:

1.-arrastra el componente alert al escenario
2.-coloca este codido en un frame vacio.

Código:
System.useCodepage = true;
import mx.controls.*;
function isMail(mail:String) {
	// indexOf devuelve la primera posición de la cadena indicada en el string, la primera posición es 0
	// lastIndexOf devuelve la última posición de la cadena indicada en el string
	if (mail.indexOf("@")>0 && mail.indexOf("@") == mail.lastIndexOf("@")) {
		// si la @ se encuentra al menos en posición 1 y no hay dos @
		if (mail.lastIndexOf(".")>mail.indexOf("@")+1 && mail.lastIndexOf(".")<mail.length-2) {
			// si el último . se encuentra después de la @ + 1 y después de éste hay al menos dos caracteres
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}
// si el email no es válido salta un aviso
if (!isMail("[email protected]")) {
	trace("No");
	Alert.show("Introduzca un correo electrónico válido", "Error", Alert.OK);
	Selection.setFocus(mail_txt);
	return false;
} else {
		Alert.show("Este correo esta correcto");
} 



isMail("[email protected]")

ahi en el parametro de inMail quitale la arroba fijate que te da error
y sino te sale un mensaje diciendo que esta bien
  #5 (permalink)  
Antiguo 26/02/2007, 17:48
 
Fecha de Ingreso: julio-2006
Mensajes: 32
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: duda, formulario flash

Hola, gracias por la ayuda, ya me sale un mensaje que es un correo valido, pero tengo el problema de que no se envia cierta informacion es la que se debe validar junto al correo, tengo un combobox qe llega bien un checkbox qe igual, pero la info de los casillas nombre empresa y el mail no llegan.

si me puedes ayudar porfa, muchas gracias de antemano.

atte

karen
  #6 (permalink)  
Antiguo 26/02/2007, 17:58
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 17 años, 6 meses
Puntos: 30
Re: duda, formulario flash

A veces suele estar el error en el php, como no lo pones no se que error pueda tener, te recominedo que nos pongas tu script php y si fuera mejor el fla, de tu 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 08:12.