JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--技术新闻--缓存区  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
checkbox的使用
作者:     文章来源:
访问次数:45次     加入时间:2005年01月01日

checkbox的使用



1、checkbox定义

    在jsp或者html页面中,经常会用到checkbox。比如这样定义:

  1. <input type="checkbox" name="check_id" size="6" value="1" >
  2. <input type="checkbox" name="check_id" size="6" value="2" >
  3. ...
  4. <input type="checkbox" name="check_id" size="6" value="9" >

提交后的我们可以直接从request对象中取得所有在页面中选择的checkbox列表。
以上面的定义为例,如果在页面中选择了value为1、2、5的checkbox项,则可以
这样获得选择项:

  1. String[] checkIds = request.getParameterValues("check_id");


有可能一些初级的web程序员也会这样定义:

  1. <input type="checkbox" name="check_id1" size="6" value="1" >
  2. <input type="checkbox" name="check_id2" size="6" value="2" >
  3. ...
  4. <input type="checkbox" name="check_id9" size="6" value="9" >

然后,在后台取数据时这样获得选择项:

  1. String checkId1 = request.getParameterValues("check_id1");
  2. String checkId2 = request.getParameterValues("check_id2");
  3. ...
  4. String checkId9 = request.getParameterValues("check_id9");

这样也可以解决问题,但是比较起来,后者用的是死办法,而且维护起来
非常不便,在此不推荐。


2、checkbox的校验

    经常有这样的情况,在页面中,有一批动态的checkbox列表项和
一个提交的按钮,业务逻辑需要至少选择一个列表项数据之后,才可以真正
提交。可以用一个javascript解决:
假设页面定义和相关代码如下:


  1. <script language=javascript>
  2. function okClick(){
  3.     //获得选择的check列表对象
  4.     var checkIdObj = eval("form1.check_id");
  5.     //判断对象是否为空
  6.     if (checkIdObj == null) {
  7.         return;
  8.     }
  9.     for (i=0; i<checkIdObj.length; i++) {
  10.         if(checkIdObj[i].checked){
  11.             form1.submit();
  12.             return;
  13.         }
  14.     }
  15. }
  16. </script>
  17. <form name="form1" method="post" action="..">
  18.     <!-- 下面的checkbox列表是动态的,有可能是从数据库中读取出来,所以有可能列表中只有一个数据-->
  19.     <input type="checkbox" name="check_id" size="6" value="1" >
  20.     <input type="checkbox" name="check_id" size="6" value="2" >
  21.     ...
  22.     <input type="button" name="ok" onclick="okClick()" value="确定">
  23. </form>

上面的定义中,如果checkbox列表中有多余一个数据时,可以工作正常,但是如果只
有一个的话(因为checkbox列表是动态的),那么永远都不会提交(不信你可以试一试)。
    经过研究,发现原来是html语言的定义有问题。如果checkbox的列表项只有一个
的话,那么checkIdOjb.length是不存在的。
所以,可以将以上的javascript改一下:

  1. <script language=javascript>
  2. function okClick(){
  3.     //获得选择的check列表对象
  4.     var checkIdObj = eval("form1.check_id");
  5.     //判断对象是否为空
  6.     if (checkIdObj == null) {
  7.         return;
  8.     }
  9.     //如果check列表对象多于一个
  10.     if(checkIdObj.length){
  11.         for (i=0; i<checkIdObj.length; i++) {
  12.             if(checkIdObj[i].checked){
  13.                 form1.submit();
  14.                 return;
  15.             }
  16.         }
  17.     }
  18.     //否则
  19.     else{
  20.         if(form1.check_id.checked){
  21.             form1.submit();
  22.             return;
  23.         }
  24.     }
  25. }
  26. </script>
JSP虚拟主机 | JSP空间 | JSP主机 | JSP双线虚拟主机 | JAVA空间 | JAVA虚拟主机 | 虚拟服务器 | JSP 虚拟服务器 | VPS
Virtual Private Server | JAVA虚拟服务器 | VM服务器 | VHOST | 虚拟操作系统 | JSP论坛 | JAVA论坛 | JSP站点论坛
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号