Un formulario Web bien diseñado suele incluir una secuencia de comandos del cliente que valida los datos proporcionados por el usuario antes de enviar la información al servidor. Las secuencias de comandos de validación pueden comprobar si el usuario escribió un número válido o si un cuadro de texto está en blanco. Imagine que su sitio Web incluye un formulario que permite calcular la tasa de retorno de una inversión . Probablemente querrá comprobar si un usuario realmente escribió texto o números en los campos apropiados del formulario, antes de enviar al servidor información que podría no ser válida.
En general, lo mejor es realizar en el cliente tantas comprobaciones como sea posible. Además, de poder preguntar antes al usuario por los errores, la validación en el cliente mejora el tiempo de respuesta, reduce la carga del servidor y libera ancho de banda para otras aplicaciones.
La siguiente secuencia de comandos del cliente valida los datos escritos por el usuario (en este caso, la secuencia de comandos determina si el número de cuenta que escribió el usuario es realmente un número) antes de enviarlos al servidor:
<SCRIPT LANGUAGE="JScript">
function ComprobarNumero()
{
if (isNumeric(document.UserForm.AcctNo.value))
return true
else
{
alert("Escriba un número de cuenta válido.")
return false
}
}
//Función para determinar si el valor del formulario es un número.
//Nota: El método isNaN JScript es un método más elegante para determinar si
//un valor no es un número. Sin embargo, algunos exploradores no admiten este método.
function isNumeric(str)
{
for (var i=0; i < str.length; i++)
{
var ch = str.substring(i, i+1)
if( ch < "0" || ch>"9" || str.length == null)
{
return false
}
}
return true
}
</SCRIPT>
<FORM METHOD="Get" ACTION="balance.asp" NAME="FormularioUsuario" ONSUBMIT="return CheckNumber()">
<INPUT TYPE="Text" NAME="NumCuen">
<INPUT TYPE="Submit" VALUE="Enviar">
</FORM> Sin embargo, si la validación de un formulario requiere el acceso a una base de datos debe considerar la utilización de la validación del formulario en el servidor. Una forma muy útil de realizar la validación en el servidor es crear formularios que se envíen la información a sí mismos. Es decir, el archivo .asp contiene en realidad el formulario HTML que recibe los datos del usuario. (Recuerde, puede utilizar ASP para interactuar con secuencias de comandos del cliente y código HTML. Para obtener más información, consulte Interactuar con secuencias de comandos del cliente.) Los datos escritos vuelven al mismo archivo, que se encarga de validar la información y avisa al usuario si éstos no son correctos.
Mediante este método se pueden mejorar las caracter ísticas de uso y la respuesta de los formularios basados en Web. Por ejemplo, si se incluye información del error junto al campo del formulario en el que se escribió la información incorrecta, será más fácil para el usuario descubrir el origen del error. (Normalmente, los formularios basados en Web reenvían las peticiones a una página Web independiente que contiene información del error. Los usuarios que no comprendan esta información podrían sentirse frustrados.)
Por ejemplo, la secuencia de comandos siguiente determina si un usuario escribió un número de cuenta válido, para lo que se envía la información a sí misma (Verify.asp) y llama a una función definida por el usuario que realiza una consulta a una base de datos:
<%
strAcct = Request.Form("Cuenta")
If Not AccountValid(strAcct) Then
ErrMsg = "<FONT COLOR= Red >El número de cuenta que ha escrito no es válido.</FONT>"
Else
Procesa los datos del usuario
.
.
.
Server.Transfer("Complete.asp")
End If
Function AccountValid(strAcct)
Aquí se incluirá una secuencia de comandos o una
llamada a un método de un componente de conexión con una base de datos.
End Function
%>
<FORM METHOD="Post" ACTION="Verify.asp">
Número de cuenta: <INPUT TYPE="Text" NAME="Cuenta"> <%= ErrMsg %> <BR>
<INPUT TYPE="Submit">
</FORM> En este ejemplo, la secuencia de comandos se encuentra en un archivo llamado Verify.asp, el mismo archivo que contiene el formulario HTML y, para enviarse la información a sí mismo, especifica Verify.asp en el atributo ACTION.
Importante: Si utiliza JScript para la validación en el servidor, asegúrese de colocar un par de paréntesis vacíos detrás del elemento de la colección Request ( QueryString o Form ) al asignar la colección a una variable local. Sin el paréntesis la colección devolverá un objeto en lugar de una cadena. La secuencia de comandos siguiente muestra el método correcto para asignar variables con JScript:
<%
var Nombre = Request.Form("Nombre")();
var Contraseña = Request.Form("Contraseña")();
if(Nombre > "")
{
if(Nombre == Contraseña)
Response.Write("El nombre y la contraseña son iguales".)
else
Response.Write("El nombre y la contraseña son diferentes".);
}
%> VBScript presenta el mismo comportamiento si la colección contiene varios valores separados por comas o con los que se pueda crear un índice. Esto significa que tanto para VBScript como para JScript, además de colocar un par de paréntesis detrás del elemento de la colección Request , necesitará especificar el índice del valor deseado. Por ejemplo, la siguiente línea en JScript devuelve sólo el primero de los varios valores de un elemento de un formulario:
var Nombre = Request.Form("Nombre")(1);
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.