vbscript起步——与窗体的交互,函数的调用

发表于:2007-06-30来源:作者:点击数: 标签:
首先我们看这样一段代码: HTML HEADTITLE一个简单首页/TITLE SCRIPT LANGUAGE=" VB Script" !-- Sub Button1_OnClick MsgBox "欢迎光临" End Sub -- /SCRIPT /HEAD BODY H3一个简单首页/H3HR FORMINPUT NAME="Button1" TYPE="BUTTON" VALUE="单击此处"/FORM
 

首先我们看这样一段代码:
<HTML>
<HEAD><TITLE>一个简单首页</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Button1_OnClick
MsgBox "欢迎光临"
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>一个简单首页</H3><HR>
<FORM><INPUT NAME="Button1" TYPE="BUTTON" VALUE="单击此处"></FORM>
</BODY>
</HTML>
这实现的是 当点击按钮时,弹出消息框,显示 欢迎光临
其中
sub 定义一个过程,过程名包含两部分:
button1 为按钮名(从<INPUT> 标记中的 NAME 属性获取)
onclick 是事件名,即button1的onclick事件其中两部分用(_)连接
合起来实现的是,单击按钮,Inte.net Explorer 查找并运行相应的事件过程,即 Button1_OnClick

<INPUT NAME="Button1" TYPE="BUTTON"
VALUE="单击此处" OnClick=‘’MsgBox "欢迎光临"‘’>
函数调用包含在单引号中,MsgBox 函数的字符串包含在双引号中。只要用冒号 (:) 分隔语句,就可以使

用多条语句。

<SCRIPT LANGUAGE="VBScript" EVENT="OnClick" FOR="Button1">
<!--
MsgBox "欢迎光临"
-->
</SCRIPT>
这种方法在<SCRIPT> 标记指定了事件和控件,所以不需要再用 Sub 和 End Sub 语句

进一步实现简单验证
<HTML>
<HEAD><TITLE>简单验证</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub button1_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="button1" TYPE="BUTTON" VALUE="提交">
</FORM>
</BODY>
</HTML>
这个文本框与 VBScript 页面的简单样例中文本框的 Value 属性被用于检查输入值。要使用文本框的

Value 属性,代码必须引用文本框的名称。

每次引用文本框时都应写出全称,即 Document.ValidForm.Text1。但是,当多次引用窗体控件时,可以

按照以下步骤操作:首先声明一个变量,然后使用 Set 语句将窗体 Document.ValidForm(form的id)

赋给变量 TheForm,这样就能使用 TheForm.Text1 引用文本框。常规的赋值语句(例如 Dim)在这里无

效,必须使用 Set 来保持对对象的引用。

进一步实现 验证后将数据传递回服务器

<HTML>
<HEAD><TITLE>简单验证</TITLE>
<<SCRIPT LANGUAGE="VBScript">
<!--
Sub button1_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
End If
Else
MsgBox "请输入一个数字。"
End If
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>简单验证</H3><HR>
<FORM NAME="ValidForm" action="要提交到的页">
请输入一个 1 到 10 之间的数字:
<INPUT NAME="Text1" TYPE="TEXT" SIZE="2">
<INPUT NAME="button1" TYPE="BUTTON" VALUE="提交">
</FORM>
</BODY>
</HTML>
sub中 TheForm.Submit 一句指出将form的内容上传到服务器端
有以下几点需要注意,我在测试的时候如果将NAME="button1" 改为NAME="submit"程序出错,原因可能是

因为submit是一个保留字
同样,如果TYPE="BUTTON" 改为TYPE="submit"那么不管验证结果如何,数据都将上传到服务器端。


原文转自:http://www.ltesting.net