Veröffentlicht 31. Januar 200520 j Hallo zusammen, ich möchte mit folgendem Code erreichen, dass beim Klick auf den Link alle Checkboxen selected sind bzw. alle wieder unselected sind. <script language="javascript"> function alle_klick_aus () { document.getElementById("box").checked =false; } function alle_klick_ein () { document.getElementById("box").checked =true; } </script> <body> <form action="" method=""> <input id="box" type="checkbox" name="Zahlmethode"> 1<br> <input id="box" type="checkbox" name="Zahlmethode"> 2<br> <p> </form> <a href="javascript:alle_klick_aus ()">alle aus</a> <p> <a href="javascript:alle_klick_ein ()">alle an</a> [/code] Das funktioniert aber nur bei der ersten Checkbox. Bei der zweiten nicht. Wahrscheinlich wegen der id. Aber wie muss ich das ändern. Es können später 1 bis n Checkboxen auf der Seite sein. Frank
31. Januar 200520 j nö das mit der ID passt schon, da es dann nur so lesen kann, das es sich um eine Gruppe handelt. Mit ner Schleife könnte man sowas denke ich mal lösen
31. Januar 200520 j ganz derbe quick and dirty. muss leider wech: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> <script language="javascript"> function checkAll(){ for(i=0;i<=frm.box.length-1;i++){ frm.box[i].checked = true; } } function uncheckAll(){ for(i=0;i<=frm.box.length-1;i++){ frm.box[i].checked = false; } } </script> </head> <body> <form name="frm" action="" method=""> <input id="box" type="checkbox" name="Zahlmethode"> 1<br> <input id="box" type="checkbox" name="Zahlmethode"> 2<br> <p> <a href="javascript:checkAll();">alle an</a> <a href="javascript:uncheckAll();">alle aus</a> </form> </body> </html>
1. Februar 200520 j <input id="box" type="checkbox" name="Zahlmethode"> 1<br> <input id="box" type="checkbox" name="Zahlmethode"> 2<br> Moin! Bin zwar kein Javascript Experte, aber die gleiche ID für zwei Element vergeben ist verboten. Richtig wäre hier: <input id="box1" class="box" type="checkbox" name="Zahlmethode"> 1<br> <input id="box2" class="box" type="checkbox" name="Zahlmethode"> 2<br> Gruß, Tobias
1. Februar 200520 j ich würde das eher so lösen <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> <script language="javascript"> function checkAll(){ for(i=0;i<=frm.Zahlmethode.length-1;i++){ frm.Zahlmethode[i].checked = true; } } function uncheckAll(){ for(i=0;i<=frm.Zahlmethode.length-1;i++){ frm.Zahlmethode[i].checked = false; } } </script> </head> <body> <form name="frm" action="" method=""> <input id="box_1" type="checkbox" name="Zahlmethode"> 1<br> <input id="box_2" type="checkbox" name="Zahlmethode"> 2<br> <p> <a href="javascript:checkAll();">alle an</a> <a href="javascript:uncheckAll();">alle aus</a> </p> </form> </body> </html>
1. Februar 200520 j zweimal die gleiche ID vergeben ist auf jeden fall nicht schön und verboten. Am besten du gibst den checkboxen den gleichen namen und suchst die elemente dann mit "getElementsByName()" diese gibt dir immer ein array zurück
1. Februar 200520 j Autor Den Checkboxen einen gleichen Namen zu geben ist leider nicht möglich da ich immer weiteren Programmcode auf die verschiedenen Namen der Checkboxen angewiesen bin. Die Methode mit den doppelten ID's funktioniert erst mal und mein Anwender ist glücklich. Auch wenn es nicht die perfekte Lösung ist. Wenn ich mal Zeit habe werde ich das umbauen. Frank
2. Februar 200520 j Den Checkboxen einen gleichen Namen zu geben ist leider nicht möglich da ich immer weiteren Programmcode auf die verschiedenen Namen der Checkboxen angewiesen bin. Die Methode mit den doppelten ID's funktioniert erst mal und mein Anwender ist glücklich. Auch wenn es nicht die perfekte Lösung ist. Wenn ich mal Zeit habe werde ich das umbauen. Frank Naja wieso verwendest du im weiteren programmcode nicht einfach die IDs und für das o.g. Problem den Namen? Gruß, Markus
2. Februar 200520 j Autor Weil der Quellcode schon älter ist und diese Änderung erst diese Woche gewünscht wurde. Frank
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.