新概念2第十三课:第十三课 VBScript与窗体



使用 Visual Basic Scripting Edition您可以完成通常要在服务器上进行大量窗体处理工作也可以完成不能在服务器上进行工作

这是个简单客户端验证样例HTML 代码结果是个文本框和个按钮如果使用 Microsoft? Internet Explorer 查看用以下代码制作页面您会看到个旁边带有按钮小文本框

<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>

这个文本框和 VBScript 页面简单样例中举例区别的处在于文本框 Value 属性被用于检查输入值要使用文本框 Value 属性代码必须引用文本框名称

每次引用文本框时都应写出全称即 Document.ValidForm.Text1但是当多次引用窗体Control控件时可以按照以下步骤操作:首先声明个变量然后使用 Set 语句将窗体 Document.ValidForm 赋给变量 TheForm这样就能使用 TheForm.Text1 引用文本框常规赋值语句(例如 Dim)在这里无效必须使用 Set 来保持对对象引用

使用数字

请注意以上举例直接检测输入值是否是个数字:使用 IsNumeric 确定文本框中串是否是个数字虽然 VBScript 能够自动转换串和数字但检测用户输入值数据子类型并且在必要时使用转换始终是个好习惯在用文本框 Value 属性进行加法运算时应将它显式地转换为数字这是加号 (+) 操作符不但可进行加法操作而且可进行串连接操作例如如果 Text1 中包含“1”Text2 中包含“2”您将会看到以下结果:

A = Text1.Value + Text2.Value \' A 为“12”
A = CDbl(Text1.Value) + Text2.Value \' A 为 3

验证后将数据传递回服务器

简单验证样例使用是普通按钮Control控件如果使用 Submit Control控件所有数据都会被立即传送到服务器举例将不会看到数据来进行检查避免使用 Submit Control控件使您可以检查数据但不能向服务器提交数据如果要提交数据则需要再添加行代码如下所示:

<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 \' 数据输入正确传递到服务器
End If
Else
MsgBox \"请输入个数字\"
End If
End Sub
-->
</SCRIPT>

在数据输入正确时代码窗体对象 Submit 思路方法将数据传递到服务器除非在数据被传递到服务器的前判断其正误否则服务器将处理数据而不论其正确和否您可以在 Internet Explorer Script Object Model 页面上找到有关 Submit 思路方法和其他思路方法全部信息

到目前为止您只看到了标准 HTML <FORM> 对象Internet Explorer 还可以使您利用 ActiveX? Control控件(以前称为 OLE Control控件)和 Java? 对象全部功能创建页面
Tags:  vbscript.encode vbscript.dll vbscript

延伸阅读

最新评论

发表评论