Unidad 19. Formularios - ActionScript (V)



19.3. Validar datos

Antes de enviar los datos es conveniente validarlos, por ejemplo, para que un campo requerido no quede en blanco. Si la validación se completa, proseguimos con el envío, pero si no, advertimos al usuario de los errores.

Un campo requerido es aquél que el usuario debe de rellenar. Por ejemplo, en el caso de un campo de texto, podemos comprobar su longitud con la propiedad miCampoTxt.text.lenght, y si es 0 es vacío.

En cambio, si se trata de una casilla que ha de estar seleccionada, basta con consultar la propiedad miCasilla.selected.

 

Una forma más avanzada sería utilizar expresiones regulares, con el objeto RexExp, que nos permite personalizar mucho más la validación. Por ejemplo, la siguiente función comprueba si el valor es un número:

function esNumero(valor:String):Boolean
{
	var expRegular:RegExp = /[0-9]+/;
	return expRegular.test(valor);
}

Con esto para comprobar si el contenido de un texto es numérico, bastaría con preguntar si esNumero(miCampo.text).

Una función muy útil es la de establecer dónde colocar el foco escribiendo la siguiente línea:

		miCampoTxt.stage.focus = miCampoTxt;

De este modo, si encontramos un error al validar podemos establecer el punto de inserción en el campo correspondiente para que el usuario escriba directamente.

Para acabar, debemos de tener un campo de texto para mostrar los posibles errores.

Vamos a unir todo esto en una función que validará los datos de un formulario.

function validarDatos():Boolean {
	if (txt_nombre.length==0) { //campo requerido
		txt_nombre.stage.focus=txt_nombre; //le damos el foco
		txt_aviso.text="Introduce tu nombre"; //Indicamos el error
		return false; //Devolvemos falso
	} else if (!chk_condiciones.selected) {
		//Comprobamos que la casilla esté marcada
		chk_condiciones.stage.focus = chk_condiciones;
		txt_aviso.text="Debes aceptar las condiciones";
		return false;
	} else {
		if (esNumero(txt_edad.text)) { //Comprobamos si es un número
			if (Number(txt_edad.text)<18) { //comprobamos si es mayor
				txt_edad.stage.focus=txt_edad;
				txt_aviso.text="Tienes que ser mayor de edad";
				return false;
			} else {
				//Si llega hasta aquí, es que todo se ha validado
				//Devolvemos true
				return true;
			}
		} else {
			txt_edad.stage.focus=txt_edad;
			txt_aviso.text="Introduce tu edad";
			return false;
		}

	}
}

Como se ve, comprobamos si el campo txt_nombre tiene texto, si la casilla chk_condiciones está marcada, y si txt_edad es un número mayor que 18.

A esta función, la llamaríamos al pulsar el botón de envío (btn_enviar). Lo que hará será validar, y si el resultado es correcto, llamará a la función que envía los datos (enviarDatos) que veremos en el próximo apartado.

btn_enviar.addEventListener(Mouse.CLICK, validaryEnviar);
function validaryEnviar(event):void {
	if (validarDatos()) { //validamos
		enviarDatos(); //Y si es True, enviamos
	}
}



Marzo-2011
Pág. 19.5

Atrás  Inicio  Adelante




.