Los programas albergados en el servidor suelen ser scripts CGI, y por supuesto no vamos a investigarlos en un curso de JavaScript. Solamente decir que existen infinidad de ellos y que, en general, la mayoría de proveedores de espacio web tienen alguno disponible para sus usuarios, con instrucciones de uso incluidas.
Los programas que se ejecutan en
el navegador suelen estar escritos en JavaScript, y realizan tareas simples
de validación. En muchas ocasiones están combinados con
scripts CGI que modifican el mensaje generado por un formulario para
facilitar su lectura y manejo.
El array document.forms
contiene todos los formularios de un documento. Así, se accedería
al primer formulario definido como document.forms[0]. Sin embargo,
si usamos el parámetro NAME:
<FORM NAME="miFormulario">
Vamos a ver ahora el código de nuestro primer formulario con validación, que comprueba si tu la dirección de correo electrónico del usuario es correcta:
<HTML> <HEAD> <TITLE>Ejemplo de formularios</TITLE> <SCRIPT LANGUAGE="JavaScript"> function validar(direccion) { if (direccion.indexOf("@") != -1) return true; else { alert('Debe escribir una dirección válida'); return false; } } </SCRIPT> </HEAD> <BODY> <FORM NAME="miFormulario" METHOD="POST" ACTION="mailto:yo@miproveedor.mipais" ENCTYPE="text/plain" onSubmit="return validar(this.email.value)"> Mandame tu e-mail: <INPUT NAME="email" TYPE="text"><BR> <INPUT TYPE="submit" VALUE="Mandame tu e-mail"> </FORM> </BODY> </HTML>El código es sencillo: el código llamado por el controlador de evento onSubmit debe devolver false si deseamos que el formulario no sea enviado. Así pues, llamamos a la función que comprueba si hay alguna arroba en el campo email del formulario.
La manera de llamar a esta función es quizás lo más complicado. La función validar recibe una cadena de caracteres, devolviendo verdadero o falso dependiendo de que haya o no una arroba dentro de ella. El controlador utiliza para llamar a esta función lo siguiente:
this.email.value
Tipo de campo | Atributo | Descripción |
---|---|---|
Hidden, Password, Text, FileUpload | value | Contiene el texto tecleado por el usuario |
Checkbox, Radio | checked | Verdadero si el control de confirmación (o un botón de radio individual) está activado |
Option | selected | Verdadero si la opción esta seleccionada dentro de su lista |
function averiguarNota(examen) { var resultado=0; for (i=0;i<examen.elements.length;i++) if ((examen.elements[i].type=="radio") && (examen.elements[i].value=="bien") && (examen.elements[i].checked)) resultado++; alert("Acertaste "+resultado+" de 5 preguntas."); return false; }y cada pregunta tiene la siguiente estructura:
<BR>Multivac es <BR><INPUT TYPE="radio" NAME="Respuesta1" VALUE="mal"> una porquería <BR><INPUT TYPE="radio" NAME="Respuesta1" VALUE="bien"> el mejor <BR><INPUT TYPE="radio" NAME="Respuesta1" VALUE="mal"> algo poco reseñableLuego la función es llamada desde el evento submit y ya está. Podría haberse hecho también desde el evento click de un botón... siempre hay más de una manera de hacer las cosas.