今天在一张JSP网页中,写一个javascript方法,用于全选。
全部被选checkBox位于一个名为mainForm的Form下,name=pushIds。方法如下:
1 function selectAll(obj){ 2 var form = document.getElementById("mainForm"); 3 var pushIds = form.pushIds; 4 var bool = obj.selected; 5 for(var j=0; j < pushIds.length; j++){ 6 pushIds[j].select = bool; 7 } 8 }
由于pushIds的checkbox是动态的,有时可能是一个,有时可能是多个。
之前一直采用这段方法,没有发现问题;直到今天,当查询出一个pushIds后,才发现这段代码已经无效,于是我才发现了这个问题。左思又想不明白,像个1个多小时,实在憋不住问了领导,领导一句话点醒了我:“单个checkbox时,是不是不是数组啊”。
于是马上修改了代码:
1 function selectAll(obj){ 2 var form = document.getElementById("mainForm"); 3 var pushIds = form.pushIds; 4 var bool = obj.selected; 5 if(pushIds.length==null{ 6 pushIds.checked=bool; 7 }else{ 8 for(var j=0; j < pushIds.length; j++){ 9 pushIds[j].select = bool; 10 } 11 } 12 }
之前一直没有留意这个问题,这个问题一直被忽略,直到今天才发现这个问题。稍后要将原来的这个问题全部解决掉。