Bienvenidos espero les guste la pagina

VBSCRIPT3

Otras formas de adjuntar código a eventos

Aunque la forma que ya ha visto es probablemente la más general y sencilla, puede adjuntar código de VBScript a eventos de otras dos formas. Internet Explorer le permite agregar secciones cortas de código en línea en la etiqueta que define el control. Por ejemplo, la siguiente etiqueta <INPUT> realiza precisamente la misma acción que el ejemplo de código anterior cuando hace clic en el botón:

<INPUT NAME="Boton1" TYPE="BUTTON"

       VALUE="Haga clic aquí" OnClick='MsgBox "Mirabile visu."'>

Observe que la llamada a la función está entre comillas simples y la cadena de la función MsgBox está entre comillas dobles. Puede utilizar múltiples instrucciones siempre y cuando separe las instrucciones con signos de dos puntos (:).

También puede escribir una etiqueta <SCRIPT> para que sólo se aplique a un determinado evento de un control específico:

<SCRIPT LANGUAGE="VBScript" EVENT="OnClick" FOR="Boton1">

<!--

    MsgBox "Mirabile visu."

-->

</SCRIPT>

Debido a que la etiqueta <SCRIPT> ya especifica el evento y el control, no utiliza las instrucciones Sub y End Sub.

 

Formularios                          

 

Validación sencilla

Puede utilizar Visual Basic Scripting Edition para realizar muchas tareas de procesamiento de formularios que normalmente necesitaría realizar en un servidor. También puede realizar tareas que sólo se podrían ejecutar en el servidor.

Aquí tiene un ejemplo de una validación sencilla del lado del cliente. El código HTML tiene un cuadro de texto y un botón. Si utiliza Microsoft® Internet Explorer para ver la página creada por el código siguiente, verá un pequeño cuadro de texto con un botón a su lado.

<HTML>

<HEAD><TITLE>Validación sencilla</TITLE>

<SCRIPT LANGUAGE="VBScript"> 

<!--

Sub Submit_OnClick

  Dim ElFormulario

  Set ElFormulario = Document.FormularioVálido

  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 sencilla</H3><HR>

<FORM NAME="FormularioVálido">

Escriba un valor entre 1 y 10: 

<INPUT NAME="Texto1" TYPE="TEXT" SIZE="2">

<INPUT NAME="Enviar" TYPE="BUTTON" VALUE="Enviar">

</FORM>

</BODY>

</HTML>

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

Siempre puede escribir la referencia completa Document.FormularioVálido.Texto1. Sin embargo, cuando tiene múltiples referencias a controles de formulario deseará hacer lo que hizo aquí. Primero, declarar una variable. Después utilizar la instrucción Set ara asignar el formulario a la variable ElFormulario. Aquí no funciona una instrucción de asignación normal, como Dim: tiene que utilizar Set para conservar la referencia a un objeto.

 

Uso de valores numéricos

Observe que el ejemplo comprueba directamente que el valor es un número: utiliza la función IsNumeric para asegurarse de que la cadena del cuadro de texto es un número. Aunque VBScript convierte automáticamente cadenas y números según se necesitan, siempre es conveniente comprobar el subtipo de datos de un valor introducido por el usuario y utilizar funciones de conversión cuando se necesitan. Cuando se realiza un sumatorio con valores de un cuadro de texto, los valores se convierten explícitamente a números ya que el operador de signo más (+) representa tanto la suma como la concatenación de cadenas. Por ejemplo, si Texto1 contiene "1" y Texto2 contiene "2", se obtiene el siguiente resultado:

A = Texto1.Value + Texto2.Value  ' A es "12"

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

 

Validación y transferencia de datos al servidor

El ejemplo de validación sencilla utiliza un control de botón normal. Si se utiliza un control Enviar, el ejemplo nunca vería los datos para comprobarlos—todo iría inmediatamente al servidor. Evitar el control Enviar le permite comprobar los datos, pero no los presenta al servidor. Esto requiere una línea de código adicional:

<SCRIPT LANGUAGE="VBScript"> 

<!--

Sub Enviar_OnClick

  Dim ElFormulario

  Set ElFormulario = Document.FormularioVálido

  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 ' Dato correcto; se envía al servidor.

    End If

  Else

 MsgBox "Escriba un valor numérico."

  End If

End Sub

-->

</SCRIPT>

Para enviar los datos al servidor, el código llama al método Submit en el objeto Form cuando el dato es correcto. A partir de ese momento, el servidor gestiona los datos de la misma manera que lo haría normalmente—sólo que los datos son correctos antes de llegar a su destino. Encontrará información completa acerca del método Submit y otros métodos en la página Modelo de objeto de automatización de Internet Explorer.

Hasta aquí, ha visto sólo los objetos HTML <FORM> estándar. Internet Explorer también le permite explotar toda la potencia de los controles ActiveX™ (antes llamados controles OLE) y objetos Java™.

 

Objetos en VBScript              

 

Uso de objetos

Si utiliza un control ActiveX™ (conocido anteriormente como control OLE) o un objeto de Java™, Microsoft Visual Basic Scripting Edition y Microsoft® Internet Explorer lo controlan de la misma forma. Si utiliza Internet Explorer y tiene instalados los controles disponibles en ActiveX, pude ver la página creada por el código siguiente.

Incluya un objeto utilizando las etiquetas <OBJECT> y establezca los valores de propiedades iniciales utilizando la etiquetas <PARAM>. Si es un programador de Visual Basic, reconocerá que utilizar la etiquetas <PARAM> es como establecer las propiedades iniciales para un control en un formulario. Por ejemplo, el siguiente conjunto de etiquetas <OBJECT> y <PARAM> agrega el control Label de ActiveX a la página:

<OBJECT

 classid="clsid:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"

 id=lblActiveLbl

 width=250

 height=250

 align=left

 hspace=20

 vspace=0

>

<PARAM NAME="Angle" VALUE="90">

<PARAM NAME="Alignment" VALUE="4">

<PARAM NAME="BackStyle" VALUE="0">

<PARAM NAME="Caption" VALUE="Un etiqueta intermitente sencilla">

<PARAM NAME="FontName" VALUE="Verdana, Arial, Helvetica">

<PARAM NAME="FontSize" VALUE="20">

<PARAM NAME="FontBold" VALUE="1">

<PARAM NAME="FrColor" VALUE="0">

</OBJECT>

Puede obtener y establecer propiedades, y llamar a métodos como con cualquier control de formulario. El siguiente código, por ejemplo, incluye controles <FORM> que puede utilizar para manipular dos de las propiedades del control Label:

<FORM NAME="ControlesEtiqueta">

<INPUT TYPE="TEXT" NAME="txtTextoNuevo" SIZE=25>

<INPUT TYPE="BUTTON" NAME="cmdCambialo" VALUE="Cambia texto">

<INPUT TYPE="BUTTON" NAME="cmdRota" VALUE="Rota etiqueta">

</FORM>

Con el formulario definido, un procedimiento de evento para el botón cmdCambialo cambia el texto de la etiqueta:

<SCRIPT LANGUAGE="VBScript">

<!--

Sub cmdCambialo_onClick

 Dim ElFormulario

 Set ElFormulario = Document.ControlesEtiqueta

 lblEtqActiva.Caption = ElFormulario.txtTextoNuevo.Value

End Sub

-->

</SCRIPT>

El código califica las referencias a controles y valores dentro del formulario Validación sencilla.

En la ActiveX Gallery hay varios controles ActiveX disponibles para utilizar con Internet Explorer. Puede encontrar información completa acerca de propiedades, métodos y eventos aquí, así como sobre los identificadores de clase (CLSID) para los controles en las páginas de referencia para la programación. Puede encontrar más información acerca de la etiqueta <OBJECT> en la página Internet Explorer 4.0 Author's Guide and HTML Reference.