alle checkboxen makieren
Flo
- javascript
Hallo zusammen,
folgendes javascript benutze ich um auf einer
Seite alle checkboxen eines namens zu merkieren:
function ALLChoice(field, i)
{
var checkcount = 0;
var loop;
for (loop = 1; loop < field.length; loop++)
{
if (i == 0)
{
field[loop].checked = field[0].checked;
}
else
{
if (field[loop].checked)
{
checkcount++;
}
field[0].checked = (checkcount == field.length-1);
}
}
}
// -->
</script>
Über einer vielzahl von checkboxen des namens "auswahl" steht eine
Master-Chackbox:
<input type="checkbox" name="auswahl" value="10" onclick="ALLChoice(document.formular_10.auswahl, 0);">
Diese Checkbox sorgt dafür das alle checkboxen mit em namen "auswahl" bei anklciken der Master-Checkbox angecheckt werden.
Leider werden auch alle de-markiert, wenn ich den haken aus der master-checkbox nehme.
Wie kann ich das Skript modifizieren um das zu verhindern?
(Bin leider kein Held in Javascript).
Vielen vielen Dank schon einmal für Eure Hilfe!
Flo
hi,
Leider werden auch alle de-markiert, wenn ich den haken aus der master-checkbox nehme.
Wie kann ich das Skript modifizieren um das zu verhindern?
sorge doch einfach dafür, dass die funktion zunächst überprüft, ob die checkbox, die die funktion aufruft, nun gerade markiert ist oder nicht. wenn ja, lasse sie mit dem markieren aller anderen boxen fortfahren; wenn nein, beende die funktionsausführung einfach an dieser stelle.
(Bin leider kein Held in Javascript).
dazu ist auch kein heldentum erforderlich, sondern lediglich ein wenig beschäftigung mit den grundlagen und dem javascript-kapitel von selfhtml.
gruß,
wahsaga
sorge doch einfach dafür, dass die funktion zunächst überprüft, ob die checkbox, die die funktion aufruft, nun gerade markiert ist oder nicht. wenn ja, lasse sie mit dem markieren aller anderen boxen fortfahren; wenn nein, beende die funktionsausführung einfach an dieser stelle.
dazu ist auch kein heldentum erforderlich, sondern lediglich ein wenig beschäftigung mit den grundlagen und dem javascript-kapitel von selfhtml.gruß,
wahsaga
Vielen Dank. KLingt nahc der besten Lösung.
Kann mir jemand die if-Bedingung so in aller Schnelle
durchgeben.
In Javascript arbeite ich sonst gar nicht und müsste mir
daher eine ganze Menge Grundlagfen einverleiben.
Vielen vielen Dank,
Der Flo
Hi auch,
in dieser Zeile:
field[loop].checked = field[0].checked;
weist Du der jeweiligen Box den Wert der Master-Box zu. Da field[0].checked den Wert der Master-Box beschreibt und entweder true oder false ist, sind alle andern entsprechend auch true oder false.
Du mußt also einfach eine weitere Sicherheitsabfrage einbauen und die obige Zeile nur ausführen, wenn die Master-Box checked ist. Etwas in dieser Art;
if (field[0].checked == true){
field[loop].checked = true;
}
Hoffe das hilft
MfG