VBScript 與表單簡單驗證
使用 Visual Basic Scripting Edition,您可以完成通常要在伺服器上進行的大量表單處理工作,也可以完成不能在伺服器上進行的工作。
這是一個簡單的用戶端驗證的範例。HTML 程式碼的結果是一個文字框和一個按鈕。如果使用 Microsoft(R) Internet Explorer 查看用以下代碼製作的頁面,您會看到一個旁邊帶有按鈕的小文字框。
<HTML><HEAD><TITLE>簡單驗證</TITLE><SCRIPT LANGUAGE="VBScript"> <!--Sub Validate Dim TheForm Set TheForm = Document.forms("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 IfEnd Sub--></SCRIPT></HEAD><BODY><H3>簡單驗證</H3><HR><form id="ValidForm" action="nothing.asp" onsubmit="Validate(); return false;" language="Visual Basic Scripting Edition">請輸入一個 1 到 10 之間的數字:<input name="Text1" TYPE="TEXT" class='9v'><input name="Submit" TYPE="Submit" 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 Button1_nClick 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 IfEnd Sub--></SCRIPT>
在資料輸入正確時,代碼調用表單對象的 Submit 方法,將資料傳遞到伺服器。除非在資料被傳遞到伺服器之前判斷其正誤,否則伺服器將處理資料,而不論其正確與否。您可以在 Internet Explorer Scripting 物件模型頁面上找到關於 Submit 方法和其他方法的全部資訊,它們在 Microsoft(R) Web 網站(http://www.microsoft.com)上可以找到。
到目前為止,您只看到了標準 HTML <FORM> 對象。Internet Explorer 還可以使您利用 ActiveX(R) 控制項(以前稱為 OLE 控制項)和 Java(TM) 對象的全部功能建立頁面。