checkbox的使用

checkbox的使用
 

 

checkbox的使用



1、checkbox定义

[pre]    在jsp或者html页面中,经常会用到checkbox。比如这样定义:[/pre]
  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" >

[pre]提交后的我们可以直接从request对象中取得所有在页面中选择的checkbox列表。
以上面的定义为例,如果在页面中选择了value为1、2、5的checkbox项,则可以
这样获得选择项:[/pre]
  1. String[] checkIds = request.getParameterValues("check_id");


[pre]有可能一些初级的web程序员也会这样定义:[/pre]
  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" >

[pre]然后,在后台取数据时这样获得选择项:[/pre]
  1. String checkId1 = request.getParameterValues("check_id1");
  2. String checkId2 = request.getParameterValues("check_id2");
  3. ...
  4. String checkId9 = request.getParameterValues("check_id9");

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

2、checkbox的校验

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

  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.     
  17.     "checkbox" name="check_id" size="6" value="1" >
  18.     "checkbox" name="check_id" size="6" value="2" >
  19.     ...
  20.     "button" name="ok" οnclick="okClick()" value="确定">

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

你可能感兴趣的:(J2EE,Struts,javascript,string,html,button,null,action)