![]() | |
|
Microsoft® Visual Basic® Scripting Edition VBScript 和表单 |
VBScript 教学 上一页 | 下一页 |
您可使用 Visual Basic Scripting Edition 处理许多您常在伺服器上执行的表单,同时也可以执行一些无法在伺服器上处理的工作。这里有一个对客户端做简单确认的范例程式。这些 HTML 程式码用来产生一个文字方块和按钮。当您使用 Microsoft® Internet Explorer 4.0 来检视由下列程式码所产生的网页时,您将会看到一个小小的文字方块,同时紧接着一个按钮。
这个文字方块和简单的 VBScript 网页上的范例之不同处,在於此文字方块的 Value 属性是用来检查输入值。程式码必须以文字方块名称的引用来取得 Value 属性。<HTML> <HEAD><TITLE>简单的确认</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 "请输入 1 到 10 中的任一值!" Else MsgBox "感谢您!" End If Else MsgBox "请输入数字!" End If End Sub --> </SCRIPT> </HEAD> <BODY> <H3>简单的确认</H3><HR> <FORM NAME="ValidForm"> 输入 1 到 10 中的任一值: <INPUT NAME="Text1" TYPE="TEXT" SIZE="2"> <INPUT NAME="Submit" TYPE="BUTTON" VALUE="传送"> </FORM> </BODY> </HTML>您可以每次都写出完整的引用 Document.ValidForm.Text1。然而,当您有多重表单控制项的引用时,您就可以使用下面的方法。首先先宣告一个变数。然後使用 Set 陈述式指定一个表单给变数 TheForm。一般的指定陈述式,像是 Dim,在这里就无法使用;您必须用 Set 来保留对物件的引用。
请注意,这个范例是直接使用数字来测试该值:它使用 IsNumeric 函数来确认在文字方块中的字串是否为数字。虽然 VBScript 可以自动转换字串和数字,不过在测试使用者输入的值之前,先检查资料的子型态并依需要使用转换函数。当使用文字方块的数值来做加法运算时,数值会被精确地转换成数字。因为 (+) 运算子符号可以代表加法和字串连结。例如,假设 Text1 等於「1」,而 Text2 等於「2」,你会看到以下的结果:A = Text1.Value + Text2.Value ' A is "12" A = CDbl(Text1.Value) + Text2.Value ' A is 3
以下为使用按钮控制项的简单确认范例。在这范例中,当您按下传送控制项时,将不会看到资料被检查,也就是说每一个动作将立即传送到伺服器中。若您在传送控制项中检查资料,它就不会将资料传送到伺服器。为了避免这种情形,需多加一行的程式码:当资料正确并要传送到伺服器时,程式码会呼叫在表格物件中的 Submit 方法。从那里,伺服器可以掌握到资料就如同从其他地方传来的一样(除非资料在传送前就是对的)。您可以在Internet Explorer Scripting 物件模型取得有关 Submit 方法和其它方法的完整资讯。<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 "请输入 1 到 10 中的任一值!" Else MsgBox "感谢您!" TheForm.Submit ' Data correct; send to server. End If Else MsgBox "请输入数字!" End If End Sub --> </SCRIPT>到此,你只看到了标准 HTML <FORM> 物件。Internet Explorer 4.0 也能让您完全发挥 ActiveX™ 控制项(先前称为 OLE 控制项)及 Java™ 物件的威力。