Microsoft® Visual Basic® Scripting Edition
VBScript e i form
 Apprendimento di VBScript 
 Indietro | Avanti 

 

Convalida semplice
È possibile utilizzare Visual Basic Scripting Edition per le operazioni di elaborazione di form che in genere è necessario eseguire in un server, nonché per le operazioni che non possono essere svolte nel server.

Di seguito è riportato un esempio di convalida semplice nel client. Il codice HTML genererà una casella di testo e un pulsante. Se per visualizzare le pagine generate dal codice si utilizza Microsoft® Internet Explorer, verrà visualizzata una piccola casella di testo con un pulsante.

<HTML>
<HEAD><TITLE>Convalida semplice</TITLE>
<SCRIPT LANGUAGE="VBScript"> 
<!--
Sub Submit_OnClick
  Dim TheForm
  Set TheForm = Document.ValidForm
  If IsNumeric(TheForm.Text1.Value) Then
    If TheForm.Text1.Value < 1 Or TheForm.Text1.Value > 10 Then
      MsgBox "Immettere un numero compreso tra 1 e 10."
    Else
      MsgBox "Valore corretto."
    End If
  Else
    MsgBox "Immettere un valore numerico."
  End If
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>Convalida semplice</H3><HR>
<FORM NAME="ValidForm">
Immettere un valore compreso tra 1 e 10: 
<INPUT NAME="Text1" TYPE="TEXT" SIZE="2">
<INPUT NAME="Submit" TYPE="BUTTON" VALUE="Invia">
</FORM>
</BODY>
</HTML>
L'unica differenza tra questo esempio e gli esempi riportati nella sezione Una semplice pagina VBScript è che la proprietà Value della casella di testo viene utilizzata per verificare il valore immesso. Per leggere la proprietà Value, è tuttavia necessario che nel codice venga specificato il riferimento al nome della casella di testo.

È comunque possibile scrivere il riferimento completo Document.ValidForm.Text1. Nel caso di più riferimenti a controlli di form, è tuttavia consigliabile procedere come indicato nell'esempio, ovvero dichiarare innanzitutto una variabile e assegnare quindi il form alla variabile TheForm tramite l'istruzione Set. In questo caso non è possibile utilizzare una normale istruzione di assegnazione quale Dim. L'istruzione Set consente infatti di mantenere il riferimento a un oggetto.

Utilizzo di valori numerici
Nell'esempio il valore viene verificato direttamente in base a un numero, ovvero viene verificato che la stringa inclusa nella casella di testo sia un numero tramite la funzione IsNumeric. Anche se in VBScript stringhe e numeri vengono convertiti automaticamente in modo adeguato, è consigliabile controllare sempre il sottotipo dei valori immessi dall'utente e utilizzare, se necessario, le funzioni di conversione. Quando si eseguono somme con i valori di caselle di testo, è inoltre necessario convertire i valori in numeri in modo esplicito. Il segno più (operatore +) rappresenta infatti sia l'addizione che il concatenamento di stringhe. Se, ad esempio, Text1 include "1" e Text2 include "2", il risultato ottenuto sarà il seguente:
A = Text1.Value + Text2.Value		' A è "12"
A = CDbl(Text1.Value) + Text2.Value	' A è 3

Convalida e restituzione di dati al server
Nell'esempio di convalida semplice viene utilizzato un normale controllo pulsante. Se venisse utilizzato un controllo Submit, i dati da controllare non sarebbero mai visualizzati, in quanto verrebbero inoltrati immediatamente al server. Se non si utilizza il controllo Submit, è possibile verificare i dati, che tuttavia non verranno inoltrati al server. Per poter eseguire questo ulteriore trasferimento, è necessario aggiungere la seguente riga di codice:
<SCRIPT LANGUAGE="VBScript"> 
<!--
Sub Submit_OnClick
  Dim TheForm
  Set TheForm = Document.ValidForm
  If IsNumeric(TheForm.Text1.Value) Then
    If TheForm.Text1.Value < 1 Or TheForm.Text1.Value > 10 Then
      MsgBox "Immettere un numero compreso tra 1 e 10."
    Else
      MsgBox "Valore corretto."
      TheForm.Submit	' Dati inoltrati al server.
    End If
  Else
    MsgBox "Immettere un valore numerico."
  End If
End Sub
-->
</SCRIPT>
Per inoltrare i dati al server, nel codice viene richiamato il metodo Submit dell'oggetto form quando i dati sono corretti. Il server gestisce quindi i dati secondo la normale modalità, ma i dati vengono corretti prima di essere inoltrati al server. Per ulteriori informazioni sul metodo Submit e altri metodi, consultare la pagina Modello di oggetti per la creazione di script nella documentazione di Internet Explorer.

Oltre agli oggetti HTML <FORM> standard, Internet Explorer consente di sfruttare le caratteristiche dei controlli ActiveX™, precedentemente definiti controlli OLE, e degli oggetti Java™.