11. december 2001 - 11:05
Der er
15 kommentarer og 1 løsning
Er checkboxen(e) checked !?
Jeg har en side med 2 frames. I den ene frame er der en knap. I den anden frame er der en række checkboxe som jeg øsnker at få \"valideret\" når jeg trykker på knappen! Altså, når jeg trykker på knappen, så skal et script løbe alle checkbox\'ene igennem og finde ud af om der er en eller flere er der cheked. Er der det, så skal den returnere true, og ellers skal den bare returnere false. Jeg er lige glad med hvilke og hvor mange der evt. er checked ! Antallet af checkboxe varierer, så derfor skal det laves i en løkke ! Min frame med checkbox\'ene er bygget op på følgende måde: <table width=\"420\" cellspacing=\"0\"> <tr bgcolor=\"#C0C0C0\"> <td width=\"150\" height=\"25\"><b>Række1</b></td> <td width=\"150\"><b>Række2</b></td> <td width=\"60\"><b>Række3</b></td> <td width=\"50\"><b>Række4</b></td> </tr> <tr bgcolor=#FFFFFF> <td height=\"22\">TEST</td> <td>123456</td> <td>INT123</td> <td align=\"center\"><input type=\"checkbox\" name=\"chkdelete0\"></td> </tr> <tr bgcolor=#C0C0C0> <td height=\"22\">Diverse</td> <td>654321</td> <td>INT123</td> <td align=\"center\"><input type=\"checkbox\" name=\"chkdelete1\"></td> </tr> <tr bgcolor=#FFFFFF> <td height=\"22\">Test igen</td> <td>123456</td> <td>INT321</td> <td align=\"center\"><input type=\"checkbox\" name=\"chkdelete2\"></td> </tr> <tr bgcolor=#C0C0C0> <td height=\"22\">TESTER</td> <td>654321</td> <td>INT321</td> <td align=\"center\"><input type=\"checkbox\" name=\"chkdelete3\"></td> </tr> </table> Snowball
Annonceindlæg fra Computerworld
11. december 2001 - 11:09
#1
hvad hedder framen med checkboxene ?
11. december 2001 - 11:11
#2
function isChecked() { var objsChk = parent.frames[0].document.all.tags(\'CHECKBOX\'); var i; var result = true; for(i=0;i<objsChk.length;i++) result &= objsChk[i].checked; return result; }
11. december 2001 - 11:11
#3
frameList :) Snowball
11. december 2001 - 11:12
#4
hmm - logikken er forkert - skal være: function isChecked() { var objsChk = parent.frames[0].document.all.tags(\'CHECKBOX\'); var i; var result = false; for(i=0;i<objsChk.length;i++) result |= objsChk[i].checked; return result; }
11. december 2001 - 11:14
#5
ok - så er det: parent.frameList.document.all eller parent.frames[\'frameList\'].document.all Men document.all er ie only. Måske findes der en dom funktion der kan finde alle tags af en bestemt type - getElementsByTag() ?
11. december 2001 - 11:16
#6
hmm - tilsyneladende virker document.all.tags(\'CHECKBOX\') ikke... øjeblik
11. december 2001 - 11:18
#7
det her kan gøre det, men stadig kun i ie: function isChecked() { var objsInput = document.all.tags(\'input\'); var i; var result = false; for(i=0;i<objsInput.length;i++) { if(objsInput[i].type==\'checkbox\') result |= objsInput[i].checked; } return result; }
11. december 2001 - 11:18
#8
Lidt enklere og mere crossbrowser (men ellers essentielt det samme): function isChecked() { var objsChk = parent.frames[0].document.formnavn.elements; var i; for(i=0;i<objsChk.length;i++) if ( objsChk[i].type==\'checkbox\' && objsChk[i].checked ) return true; return false; }
11. december 2001 - 11:20
#9
HEY - der står ikke noget med en form :-)
11. december 2001 - 11:28
#10
html tillader kun <input kommandoer indeni en <form container. IE tillader dem dog uden, så sammen med \'document.all\' behøves der ikke nogen <form. mvh JakobA
11. december 2001 - 11:29
#11
touché (how do you know these things ? :-)
11. december 2001 - 11:40
#12
bin there, fallen in that hole :-))
11. december 2001 - 12:01
#13
tknudsen\'s svar fra 11:18:41 er den eneste der så\'n lige umiddelbart virker, dog så returnerer den altid False !? ;) Snowball
11. december 2001 - 12:07
#14
det skyldes nok lidt type-forvirring i javascript - hvis du gør det sådan her burde det virke: function isChecked() { var objsInput = document.all.tags(\'input\'); var i; var result = false; for(i=0;i<objsInput.length;i++) { if(objsInput[i].type==\'checkbox\') result |= objsInput[i].checked; } if(result) return true; else return false; }
11. december 2001 - 12:11
#15
Nope. Får stadig altid False tilbage ! Snowball
11. december 2001 - 12:13
#16
DOH! Min fejl, sorry. Det virker perfekt ;) Snowball
Vi tilbyder markedets bedste kurser inden for webudvikling