Visual Basic Scripting Edition  

VBScript y formularios

Validación simple

Puede utilizar Visual Basic Scripting Edition para realizar buena parte del procesamiento de formularios que normalmente realizaría en un servidor. También puede realizar tareas que no podrían llevarse a cabo en el servidor.

Aquí tenemos un ejemplo de validación del cliente simple. El código HTML muestra un cuadro de texto y un botón. Si utiliza Microsoft® Internet Explorer para visualizar la página resultante del código siguiente, verá un pequeño cuadro de texto con un botón junto a él.

<HTML>
<HEAD><TITLE>Validación simple</TITLE>
<SCRIPT LANGUAGE="VBScript"> 
<!--
Sub Validar
   Dim elFormulario
   Set elFormulario = Document.forms("ValidForm")
   If IsNumeric(elFormulario.Texto1.Value) Then
      If elFormulario.Texto1.Value < 1 Or elFormulario.Texto1.Value > 10 Then
         MsgBox "Escriba un número entre 1 y 10."
      Else
         MsgBox "Gracias."
      End If
   Else
      MsgBox "Escriba un valor numérico."
   End If
End Sub-->
</SCRIPT>
</HEAD>
<BODY>
<H3>Validación simple</H3><HR>
<form id="ValidForm" action="nothing.asp" onsubmit="Validar(); return false;" language="jscript">
Escriba un número entre 1 y 10: 
<input name="Texto1" TYPE="TEXT" SIZE="2">
<input name="Submit" TYPE="Submit" VALUE="Enviar">
</form>
</BODY>
</HTML>

La diferencia entre este cuadro de texto y los ejemplos en Una página sencilla de VBScript es que la propiedad Value del cuadro de texto se utiliza para comprobar el valor escrito. Para obtener la propiedad Value, el código tiene que calificar la referencia al nombre del cuadro de texto.

Siempre puede escribir toda la referencia Documento.ValidForm.Texto1. Sin embargo, donde tenga referencias múltiples para formar controles, deseará hacer lo que se ha hecho aquí. Primero, declarar una variable. Después, utilizar la instrucción Set para asignar el formulario a la variable elFormulario. Una instrucción de asignación normal, como Dim, no funciona en este caso; debe utilizar Set para conservar la referencia a un objeto.

Utilizar valores numéricos

Tenga en cuenta que el ejemplo comprueba directamente el valor con un número; para ello utiliza la función IsNumeric para confirmar que la cadena del cuadro de texto es un número. Aunque VBScript convierte automáticamente cadenas y números, es siempre una buena costumbre comprobar el subtipo de datos de un valor escrito por un usuario y utilizar funciones de conversión siempre que sea necesario. Cuando realice una suma con valores de cuadro de texto, convierta los valores de manera explícita en números porque el operador de signo más (+) representa a la suma y a la concatenación de cadena. Por ejemplo, si Texto1 contiene "1" y Texto2 contiene "2", verá los siguientes resultados:

A = Texto1.Value + Texto2.Value      ' A es "12"
A = CDbl(Texto1.Value) + Texto2.Value   ' A es 3

Validar y devolver datos al servidor

El ejemplo de validación simple utiliza un control de botón sencillo. Si se utilizó un control Submit, el ejemplo nunca verá los datos que ha de comprobar —todo iría inmediatamente al servidor. Evitar el control Submit le permite comprobar los datos, pero no los envía al servidor. Para hacerlo necesita una línea de código adicional:

<SCRIPT LANGUAGE="VBScript"> 
<!--
Sub Boton1_OnClick
 Dim elFormulario
 Set elFormulario = Documento.ValidForm
 If IsNumeric(elFormulario.Texto1.Value) Then
    If elFormulario.Texto1.Value < 1 Or elFormulario.Texto1.Value > 10 Then
      MsgBox "Escriba un número entre 1 y 10."
    Else
      MsgBox "Gracias."
      elFormulario.Submit   ' Datos correctos; enviar al servidor.
    End If
 Else
    MsgBox "Escriba un valor numérico."
 End If
End Sub
-->
</SCRIPT>

Para enviar los datos al servidor, cuando los datos son correctos el código llama al método Submit en el objeto de formulario. Desde aquí, el servidor controla los datos como haría con otros; la diferencia es que los datos son correctos antes de llegar allí. Encontrará información completa acerca del método Submit y otros métodos en la documentación del Modelo de objetos de secuencias de comandos de Internet Explorer, que se puede encontrar en la página Web de Microsoft® (http://www.microsoft.com/spanish/).

Hasta ahora, sólo ha visto los objetos <FORM> de HTML estándar. Internet Explorer también le permite obtener la máxima ventaja de los controles ActiveX® (anteriormente llamados controles OLE) y objetos Java™.

Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com.