VBScript教程 第十三課 VBScript與窗體

NO IMAGE

簡單驗證

使用 Visual Basic Scripting Edition,您可以完成通常要在伺服器上進行的大量窗體處理工作,也可以完成不能在伺服器上進行的工作。

這是一個簡單的客戶端驗證的樣例。HTML 程式碼的結果是一個文字框和一個按鈕。如果使用 Microsoft? Internet Explorer 檢視用以下程式碼製作的頁面,您會看到一個旁邊帶有按鈕的小文字框。

<HTML>
<HEAD><TITLE>簡單驗證</TITLE>
<SCRIPT LANGUAGE=”VBScript”>
<!–
Sub Submit_&#111nClick
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。但是,當多次引用窗體控制元件時,可以按照以下步驟操作:首先宣告一個變數,然後使用 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

驗證後將資料傳遞迴伺服器

簡單驗證樣例使用的是普通按鈕控制元件。如果使用 Submit 控制元件,所有資料都會被立即傳送到伺服器,示例將不會看到資料來進行檢查。避免使用 Submit 控制元件使您可以檢查資料,但不能向伺服器提交資料。如果要提交資料則需要再新增一行程式碼,如下所示:

<SCRIPT LANGUAGE=”VBScript”>
<!–
Sub Submit_&#111nClick
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? 控制元件(以前稱為 OLE 控制元件)和 Java? 物件的全部功能建立頁面。