|
Microsoft® Visual Basic® Scripting Edition VBScript e i form |
Apprendimento di VBScript Indietro | Avanti |
È 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.
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.<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>È 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.
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
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: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.<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>Oltre agli oggetti HTML <FORM> standard, Internet Explorer consente di sfruttare le caratteristiche dei controlli ActiveX, precedentemente definiti controlli OLE, e degli oggetti Java.