VBScript и формы
Простая проверка
Вы можете использовать сценарии VBScript для отправки данных пользователя на сервер.
Вы также можете выполнять какие-либо вычисления без отправки данных на сервер.
Ниже приведён простой пример проверки на стороне клиента. На веб-странице расположены поле для ввода текста и кнопка.
В отличие от примера, приведённого в разделе
Простая страница с VBScript,
здесь свойство Value текстового поля используется для проверки
введённого значения. Чтобы получить значение текстового поля, в коде используется
ссылка на имя этого поля. То есть в сценарии к этому полю мы обращаемся по полному имени,
которое состоит из имени формы и имени элемента управления. Кроме этого в имени
ещё используется объект Document, который связан с текущей веб-страницей.
В принципе, слово Document в имени можно опустить. Итак, полное имя
текстового поля, которое можно использовать для получения содержимого этого элемента, выглядит так:
Document.ValidForm.Text1
Но чтобы немного сократить это имя, мы сначала получаем ссылку на форму в переменную
TheForm и затем уже используем эту переменную. Для того, чтобы получить ссылку на форму,
мы используем оператор
Set, который связывает форму с переменной TheForm:
set TheForm = Document.ValidForm
Пример веб-страницы:
<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>
Использование числовых значений
В приведённом выше примере значение проверяется как число. Для этого используется функция
IsNumeric, которая возвращает TRUE, если переданный в неё параметр является числом.
Если это текст, то возвращается значение FALSE. Таким образом мы выполняем проверку
введённых пользователем данных. Если пользователь ошибся и ввёл текст вместо числа,
то ему выдаётся сообщение «Пожалуйста введите число».
Несмотря на то, что 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 Button2_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 объекта
Form.
После этого сервер обрабатывает данные. Более подробную информацию о методе
Submit
и других методах вы можете найти в документации Internet Explorer Scripting Object Model.
Эту документацию можно найти на сайте Microsoft
(
http://www.microsoft.com).
Здесь вы увидели только стандартные объекты HTML <FORM>. Кроме этого Internet Explorer
позволяет вам разрабатывать полноценные мощные элементы управления ActiveX (ранее они назывались OLE) и Java объекты.