[转载]checkbox的使用

本文详细介绍了在JSP或HTML中使用checkbox的方法,包括如何通过request对象获取选中的复选框列表,以及如何利用JavaScript进行至少一项选择的校验。文章提供了具体的代码示例,帮助读者理解和应用。
checkbox的使用

checkbox的使用



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

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

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

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


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

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

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

  1. function okClick(){
  2. //获得选择的check列表对象
  3. var checkIdObj = eval("form1.check_id");
  4. //判断对象是否为空
  5. if (checkIdObj == null) {
  6. return;
  7. }
  8. //如果check列表对象多于一个
  9. if(checkIdObj.length){
  10. for (i=0; ilength; i++) {
  11. if(checkIdObj[i].checked){
  12. form1.submit();
  13. return;
  14. }
  15. }
  16. }
  17. //否则
  18. else{
  19. if(form1.check_id.checked){
  20. form1.submit();
  21. return;
  22. }
  23. }
  24. }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-131038/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-131038/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值