Microsoft® Visual Basic® Scripting Edition
VBScript와 폼
 VBScript 자습서
 이전 페이지다음 페이지

 

간단한 입력값 확인
Visual Basic Scripting을 사용하면 서버에서 일상적으로 수행해야 하는 많은 폼 처리 작업을 수행할 수 있는 한편 서버에서는 수행될 수 없는 작업도 처리할 수 있습니다.

클라이언트 쪽의 간단한 확인 용례를 아래에서 보여줍니다. 텍스트 상자와 단추에 대한 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로 작성할 수 있습니다. 그러나 폼 컨트롤에 대해 복수 참조를 하는 경우 위의 방법을 여기서도 사용할 수 있습니다. 다시 말하자면 먼저 변수를 선언한 다음, Set문을 사용하여 폼을 TheForm 변수로 지정합니다. Dim문과 같은 일반적인 지정 명령문은 사용할 수 없습니다. 대신 Set문을 사용하여 개체에 대한 참조를 보존해야 합니다.

숫자 값 사용
아래 용례는 숫자에 대한 값을 직접 검사합니다. 즉, IsNumeric 함수를 사용하여 텍스트 상자의 문자열이 숫자인지 확인합니다. VBScript에서 문자열과 숫자를 자동으로 변환하지만, 항상 사용자가 입력한 값의 데이터 하위 형식을 검사하고 필요한 경우 변환 함수를 사용하는 것이 좋습니다. 덧셈 기호(+) 연산자는 덧셈과 문자열 연결의 양쪽에서 사용할 수 있으므로 텍스트 상자에서 덧셈을 수행할 경우 값을 숫자로 명시적으로 변환해야 합니다. 예를 들어, 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_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 Scripting Object Model 페이지에는 Submit 메서드와 기타 메서드에 관한 자세한 정보가 들어 있습니다.

지금까지는 일반적인 HTML <FORM> 개체를 살펴 보았습니다. 그러나 Internet Explorer에서는 이전에 OLE 컨트롤이라고 한 ActiveX™ 컨트롤과 Java™ 개체를 만족스럽게 활용할 수 있습니다.