首页 电脑学院 黑客教程 网站技术 网页特效 免费论文 公文写作 演讲发言 实用文档 职场指南 时尚生活 情感男女 其他资讯

您的位置:首页-> 网站技术-> ASP技术-> 使用VBScript操作Html复选框(CheckBox)控件
使用VBScript操作Html复选框(CheckBox)控件
这两天看到有朋友问起html内的各种控件怎么用script进行操作,现在自己也总结一下。因为项目原因,很多程序都是用VBScript写的,感兴趣的朋友可以改写成JavaScript,到时候别忘了共享一下啊,活活。

OK,切入主题,现介绍一下:

今天介绍使用VBScript判断复选框的选中数量和被选中的复选框的值。

在生成某个一览表时,比如一个订货单一览表,每条订货单记录前面可能会放置一个复选框,以提供批量删除,发行等功能。一般每个复选框的值也就是后面对应记录的主键的值,如订货单编号。在执行删除、发行等功能时,就要知道选了几个复选框,这些复选框分别对应什么值,下面就说一下方法。

程序分为三部分:

一、判断被选定的CheckBox是一个还是一个以上

      主要思路是:当有多个同名的复选框,但ID不同时,举例复选框控件名为chkTest,那么它将被以数组的形式调用,比如说有三个复选框名字叫chkTest,ID分别是chkTest1,chkTest2,chkTest3,那么要想查看三个复选框的checked属性就要这么写:chkTest(0).checked, chkTest(1).checked, chkTest(2).checked (数组从零开始);而当只有一个复选框的时候,直接可以使用chkTest.checked。这样就决定了对于数量不同的(1个或多个两种分别),只能采用不同的方法来取得复选框的信息。由于当有多个同名不同ID的控件时,该控件拥有“控件名.type”这个属性,而这个只读的属性可以等于任何字符串,也就是说 控件名.type = “任意字符串“ 恒为true。当然,这只是对有控件名.type这个属性的时候,否则恒为false,这样也就分辨出在一览表里的复选框是单个还是多个了。程序如下:

'*************************************************
'<函数名>
' gfIs_ArrayTest(obj)
'<功能>
' 判断选定的CheckBox的是一个还是一个以上
'<参数>
' CheckBox对象名
'<返回值>
' true
' false
'<备注>
' Created on Mar.15th.2004 by AITD
'*************************************************
function gfIs_ArrayTest(obj)
on error resume next
if obj.type = "flag" then
  gfIs_ArrayTest = True
else
  gfIs_ArrayTest = False
end if
end function

二、检查画面上复选框的选择是否符合要求

         所谓是否符合要求的意思就是,比如说,删除的时候选择起码一条记录,修正的时候选且只能选择一条记录,至于其他的,什么只能选择5条,只能选择10条等等,下面的程序改以下就行了。别忘了刚才说的,只有一个复选框和有多个复选框的处理方法是不一样的。

'******************************************************
'<函数名>
' gfChkCheckbox()
'<功能>
' 检查画面CheckBox的选择是否符合要求
'<参数>
' obj: 对应的checkbox控件
' flag: 检查规则:0 可有多个被选中
'       1 只能有一个被选中
' name:  提示用户那个控件报错的信息
'<返回值>
' true
' false
'<备注>
' Created on Mar.15th.2004 by AITD
'******************************************************
function gfChkCheckbox(obj,flag,name)
Dim i
Dim j

gfChkCheckbox = false
i = 0
j = 0
'若对象不存在
if isnull(obj) then
  msgbox "请选择一个 " + name + "。"  '请选择一个对象
  gfChkCheckbox = false
  exit function
end if

'对象只有一个
if not gfIs_ArrayTest(obj) then
  if obj.checked = false then
   msgbox "请选择一个 " + name + "。"  '请选择一个对象
   gfChkCheckbox =  false
   exit function
  else
   gfChkCheckbox = true
   exit function
  end if
end if

'若有多个对象存在

for i = 0 to (obj.length - 1)
  if obj(i).type = "checkbox" then
   if obj(i).checked = true then
    j = j + 1
   end if
  end if
next

if j = 0 then
  msgbox "请选择 " + name + "。"  '请选择一个对象
  gfChkCheckbox =  false
  exit function
end if
if j = 1 then
  gfChkCheckbox = true
  exit function
end if
if j > 1 then
  if flag = 1 then
   msgbox "只能选择一个 " + name + "。"  '只能选择一个对象
   gfChkCheckbox =  false
   exit function
  else
   gfChkCheckbox =  true
   exit function
  end if
end if

end function

三、取得复选框的值

         为了后面处理的方便,常把重要的信息保存在复选框的value属性里,以便后面取用。下面的程序将选中的复选框的值以间隔符 “^|^“ 串成一个字符串并返回。

'*************************************************
'<函数名>
' gfGetCheckBoxValue(obj)
'<功能>
' 取得选定的CheckBox的值
'<参数>
' CheckBox对象名
'<返回值>
' 选定的CheckBox的值
'<备注>
' Created on Mar.15th.2004 by AITD
'*************************************************
function gfGetCheckBoxValue(obj)

dim strValue
dim intCounter
dim i

strValue = ""
intCounter = 0

'如果对象不存在
if isnull(obj) then
  gfGetCheckBoxValue = strValue
  exit function
end if

'如果对象为一个
if not gfIs_ArrayTest(obj) then
  if obj.checked = false then
   gfGetCheckBoxValue = strValue
   exit function
  else
   gfGetCheckBoxValue = obj.value
   exit function
  end if
end if

'如果对象为多个
for i = 0 to obj.length - 1
  if obj(i).checked = true then
   if intCounter > 0 then
    strValue = strValue & "^|^" & CStr(obj(i).value)
   else
    strValue = CStr(obj(i).value)
   end if
   intCounter = intCounter + 1
  end if
next

gfGetCheckBoxValue = strValue
end function

上面就是VBScript里面处理复选框的方法(偶用的)。可以把这几个函数封装到一个共通的vbs文件中,并在html的<head>标记区内引用就可以通用了~ 如 <head><script language=vbscript src=vbsChkBoxTool.vbs></script></head>

还要注意一个问题,在实际应用中,有可能根据查询条件生成的一览表里一条记录也没有,就是说没有复选框控件,如果仍旧调用这样一个名字的控件,这时候IE就会报错。没有什么太好的解决办法,于是写了一段程序绕过这个没有复选框控件的情况:

function sIsChkBoxExist()
on error resume next
  err.clear
  if isEmpty(document.frmOrderList.chkOrder) then
  end if
  if err.number <> 0 then
  else
   sIsChkBoxExist=true
  end if
  err.clear
end function

程序中对预定的控件随便做一个操作,如isEmpty,如果捕捉到了err.number>0的情况,就说明该控件不存在,但由于有on error resume next,所以不会提示错误,这样也就判断出了控件存不存在。

每次在调用上面三个函数之前,先调用一次sIsChkBoxExist函数,看看对应的控件存不存在,这样就不会有错了。
在百度中查找更多使用VBScript操作Html复选框(CheckBox)控件的内容
职场宝典   职场故事   职场跳槽   职场文化   职场理财   职场充电   情感天地   职场女性   职场礼仪   职场新人
报告总结   述职报告 工作总结 调查报告 工作汇报 计划方案 个人总结 社会实践 规章制度 调研报告 
  实习报告 考察报告 辞职报告 
演讲发言   竞职演说   就职演说   精彩演说   爱国演讲   英语演讲   十七大演讲   安全生产演讲稿   
节日祝福   重阳节 国庆节 教师节 中秋节 情人节 七夕节 劳动节 妇女节 清明节 愚人节 春节 元旦 圣诞节  儿童节  端午节 母亲节 新婚祝福 生日祝福 
讲话致辞   开业开幕   会议主持   庆典致辞   会议发言   党风廉政   党政报告   贺电慰问   婚丧嫁娶   思想宣传
法律常识   基本常识   法律文书   权益常识   劳动保障   婚姻继承   民事诉讼   刑事诉讼   
党建材料   入党申请   思想学习   党性分析   思想汇报   转正申请   民主生活   党委党建   入团申请   申报材料
求职简历   个人简历   求职自荐   求职谋略   面试技巧   求职英语   自我鉴定   英文简历   简历封面
心得体会   心得体会   经验交流   读后感   
时政热点   和谐社会   先进性教育   新农村建设   十七大   八荣八耻   科学发展观   劳动合同法   
人际沟通   社交技巧   社交礼仪   口才技巧   谈话技巧   演讲技巧   
营销技巧   电话销售   网络销售   推销技巧   促销技巧   销售口才   营销手段   销售技巧   谈判技巧   

“ 使用VBScript操作Html复选框(CheckBox)控件”来源于网络,版权归作者所有!勿用于商业用途。

ASP技术

ASP技术
PHP技术
JSP技术
.NET技术
服务器技术
数据库开发
其它类

本类阅读TOP10

·MDAC2.8 下载!
·ASP 编程中 20 个非常有用的例子——适合初学者
·ASP编程入门进阶(七):内置对象Server
·跟我学做树型菜单(四)
·教你1小时里搞定ASP
·IIS6.0的设置
·ASP分页祥解
·常用代码集锦(ASP)
·关于内部服务器500错误的文档
·新手初练:用ASP做一个域名查询系统

广告


关于本站|服务条款|广告服务|客服中心|发布文章|网站留言