checkbox的使用 checkbox的使用 1、checkbox定义 [pre] 在jsp或者html页面中,经常会用到checkbox。比如这样定义:[/pre] <input type="checkbox" name="check_id" size="6" value="1" > <input type="checkbox" name="check_id" size="6" value="2" > ... <input type="checkbox" name="check_id" size="6" value="9" > [pre]提交后的我们可以直接从request对象中取得所有在页面中选择的checkbox列表。以上面的定义为例,如果在页面中选择了value为1、2、5的checkbox项,则可以这样获得选择项:[/pre] String[] checkIds = request.getParameterValues("check_id"); [pre]有可能一些初级的web程序员也会这样定义:[/pre] <input type="checkbox" name="check_id1" size="6" value="1" > <input type="checkbox" name="check_id2" size="6" value="2" > ... <input type="checkbox" name="check_id9" size="6" value="9" > [pre]然后,在后台取数据时这样获得选择项:[/pre] String checkId1 = request.getParameterValues("check_id1"); String checkId2 = request.getParameterValues("check_id2"); ... String checkId9 = request.getParameterValues("check_id9"); [pre]这样也可以解决问题,但是比较起来,后者用的是死办法,而且维护起来非常不便,在此不推荐。[/pre] 2、checkbox的校验 [pre] 经常有这样的情况,在页面中,有一批动态的checkbox列表项和一个提交的按钮,业务逻辑需要至少选择一个列表项数据之后,才可以真正提交。可以用一个javascript解决:假设页面定义和相关代码如下:[/pre] <script language=javascript> function okClick(){ //获得选择的check列表对象 var checkIdObj = eval("form1.check_id"); //判断对象是否为空 if (checkIdObj == null) { return; } for (i=0; i<checkIdObj.length; i++) { if(checkIdObj[i].checked){ form1.submit(); return; } } } </script> <form name="form1" method="post" action=".."> <!-- 下面的checkbox列表是动态的,有可能是从数据库中读取出来,所以有可能列表中只有一个数据--> <input type="checkbox" name="check_id" size="6" value="1" > <input type="checkbox" name="check_id" size="6" value="2" > ... <input type="button" name="ok" οnclick="okClick()" value="确定"> </form> [pre]上面的定义中,如果checkbox列表中有多余一个数据时,可以工作正常,但是如果只有一个的话(因为checkbox列表是动态的),那么永远都不会提交(不信你可以试一试)。 经过研究,发现原来是html语言的定义有问题。如果checkbox的列表项只有一个的话,那么checkIdOjb.length是不存在的。所以,可以将以上的javascript改一下:[/pre] <script language=javascript> function okClick(){ //获得选择的check列表对象 var checkIdObj = eval("form1.check_id"); //判断对象是否为空 if (checkIdObj == null) { return; } //如果check列表对象多于一个 if(checkIdObj.length){ for (i=0; i<checkIdObj.length; i++) { if(checkIdObj[i].checked){ form1.submit(); return; } } } //否则 else{ if(form1.check_id.checked){ form1.submit(); return; } } } </script>