今天在一張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 }
之前一直沒有留意這個問題,這個問題一直被忽略,直到今天才發現這個問題。稍后要將原來的這個問題全部解決掉。
