За последние два дня я видел, как друзья спрашивали, как использовать скрипт для управления различными элементами управления в HTML, и теперь я сам подведу итог. По соображениям проекта многие программы написаны на VBScript. Заинтересованные друзья могут переписать их на JavaScript. Не забудьте поделиться ими в прямом эфире.
Хорошо, давайте перейдем к теме и представим ее сейчас:
сегодня мы представим использование VBScript для определения количества выбранных флажков и значения выбранного флажка.
При создании списка, например списка заказов, перед каждой записью заказа может быть установлен флажок для обеспечения таких функций, как удаление и выпуск партии. Обычно значение каждого флажка — это значение первичного ключа соответствующей записи, например номер заказа. При выполнении таких функций, как удаление и освобождение, необходимо знать, сколько флажков установлено и каким значениям соответствуют эти флажки. Способ описан ниже.
Программа разделена на три части:
1. Определите, является ли выбранный флажок одним или несколькими.
Основная идея такова: когда имеется несколько флажков с одинаковым именем, но с разными идентификаторами, например, элементу управления флажком присваивается имя. chkTest, то он будет вызываться в виде массива. Например, есть три флажка с именем chkTest и их идентификаторами: chkTest1, chkTest2 и chkTest3. Если вы хотите просмотреть проверенные атрибуты трех флажков, вы должны написать: chkTest(0).checked , chkTest(1).checked, chkTest(2).checked (массив начинается с нуля), chkTest.checked можно использовать напрямую. Это определяет, что для разных номеров (одного или нескольких) разные методы можно использовать только для получения информации о флажке. Потому что при наличии нескольких элементов управления с одинаковым именем и разными идентификаторами элемент управления имеет свойство «имя элемента управления.тип», и это свойство, доступное только для чтения, может быть равно любой строке, то есть элементу управления name.type = « любая строка» Константа имеет значение true. Конечно, это происходит только при наличии атрибута элемента управления name.type, в противном случае он всегда имеет значение false, чтобы можно было отличить, является ли флажок в списке одиночным или множественным. Процедура следующая:
«********************************************* ***** ***
'<имя функции>
' gfIs_ArrayTest(obj)
'<функция>
' Определяем, является ли выбранный флажок одним или несколькими
'<параметр>
' Имя объекта CheckBox
'<возвращаемое значение>
' истинный
' ЛОЖЬ
'<Примечания>
' Создано 15 марта 2004 г. компанией AITD
'************************************************
функция gfIs_ArrayTest (obj)
при ошибке продолжить дальше
если obj.type = "флаг", то
gfIs_ArrayTest = Истина
еще
gfIs_ArrayTest = Ложь
конец, если
функция завершения
2. Проверить, соответствует ли выбор флажков на экране требованиям.
Так называемое соответствие означает, например, при удалении выбрать хотя бы одну запись, при исправлении выбрать и выбрать только одну запись. другие, что можно выбрать только 5 элементов, можно выбрать только 10 элементов и т. д. Просто измените следующую процедуру на следующую. Не забывайте, что я только что сказал: существуют разные способы обработки только одного флажка и нескольких флажков.
'********************************************** ****
'<имя функции>
'gfChkCheckbox()
'<функция>
' Проверяем, соответствует ли выбор Screen CheckBox требованиям
'<параметр>
'obj: соответствующий элемент управления флажком
'flag: Правила проверки: 0 может иметь несколько выбранных
' 1 Можно выбрать только один
'имя: запрашивает у пользователя информацию о том, какой элемент управления сообщил об ошибке
'<возвращаемое значение>
' истинный
' ЛОЖЬ
'<Примечания>
' Создано 15 марта 2004 г. компанией AITD
'********************************************** ****
функция gfChkCheckbox(объект,флаг,имя)
Дим я
дж
gfChkCheckbox = ложь
я = 0
j = 0
'Если объект не существует
если isnull(obj), то
msgbox "Пожалуйста, выберите " + имя + "" 'Пожалуйста, выберите объект
gfChkCheckbox = ложь
функция выхода
конец, если
«Есть только один объект
если не gfIs_ArrayTest(obj), то
если obj.checked = false, тогда
msgbox "Пожалуйста, выберите " + имя + "" 'Пожалуйста, выберите объект
gfChkCheckbox = ложь
функция выхода
еще
gfChkCheckbox = правда
функция выхода
конец, если
end if
'Если существует несколько объектов
для i = 0 до (obj.length - 1)
если obj(i).type = "флажок", то
если obj(i).checked = true, тогда
j=j+1
конец, если
конец, если
следующий
если j = 0, то
msgbox "Пожалуйста, выберите" + имя + "." 'Пожалуйста, выберите объект
gfChkCheckbox = ложь
функция выхода
конец, если
если j = 1, то
gfChkCheckbox = правда
функция выхода
конец, если
если j > 1, то
если флаг = 1, то
msgbox "Можно выбрать только один " + имя + " 'Можно выбрать только один объект."
gfChkCheckbox = ложь
функция выхода
еще
gfChkCheckbox = правда
функция выхода
конец, если
функция
end if
end3. Получение
значения
флажка Для удобства последующей обработки важная информация часто сохраняется в атрибуте value флажка для последующего доступа.Следующая программа объединяет значение выбранного флажка в строку с использованием разделителя «^|^» и возвращает ее.
'************************************************
'<имя функции>
'gfGetCheckBoxValue(obj)
'<функция>
'Получаем значение выбранного флажка
'<параметр>
' Имя объекта CheckBox
'<возвращаемое значение>
'Значение выбранного флажка
'<Примечания>
' Создано 15 марта 2004 г. компанией AITD
'************************************************
функция gfGetCheckBoxValue(obj)
dim strValue
тусклый intCounter
dim я
strValue = ""
intCounter = 0
'Если объект не существует
если isnull(obj), то
gfGetCheckBoxValue = strValue
функция выхода
end if
'Если объект является
если не gfIs_ArrayTest(obj), то
если obj.checked = false, тогда
gfGetCheckBoxValue = strValue
функция выхода
еще
gfGetCheckBoxValue = obj.value
функция выхода
конец, если
end if
'Если объектов несколько
для i = 0 до obj.length - 1
если obj(i).checked = true, тогда
если intCounter > 0, то
strValue = strValue & "^|^" & CStr(obj(i).value)
еще
strValue = CStr(obj(i).value)
конец, если
intCounter = intCounter + 1
конец, если
следующий
gfGetCheckBoxValue = strValue
конечная функция
— это метод обработки флажков в VBScript (иногда используемый). Эти функции могут быть инкапсулированы в общий файл vbs и на них можно ссылаться в области тега <head> HTML, чтобы сделать их универсальными ~, например <head><script Language=vbscript src=vbsChkBoxTool.vbs></script> </ head>
Также обратите внимание, что в реальных приложениях в списке, созданном на основе условий запроса, может не быть ни одной записи, то есть не будет элемента управления флажком. Если элемент управления с таким именем все еще вызывается, IE. будет Будет сообщено об ошибке. Хорошего решения не было, поэтому я написал программу для обхода этой ситуации без контроля флажка:
функция sIsChkBoxExist()
при ошибке продолжить дальше
ошибка.очистить
если isEmpty(document.frmOrderList.chkOrder), то
конец, если
если номер ошибки <> 0, то
еще
sIsChkBoxExist=истина
конец, если
ошибка.очистить
конечной функции
выполните любую операцию с заранее определенным элементом управления, например isEmpty. Если зафиксировано err.number>0, это означает, что элемент управления не существует. Однако, поскольку далее следует возобновление при ошибке, ошибки не будет. Это также определяет, существует ли элемент управления.
Каждый раз перед вызовом трех вышеуказанных функций вызовите функцию sIsChkBoxExist один раз, чтобы проверить, существует ли соответствующий элемент управления, чтобы не было ошибок.