Hi Leute
Ich brauche eine Funktion in JavaScript um die Anzahl der auszuwählenden Checkboxen in einem Formular zu begrenzen.
Mit der Suchfunktion habe ich diesen Post gefunden der eigentlich genau meine Anforderungen abdeckt:
https://www.forum-hilfe.de/threads/49223-…boxen-begrenzen
Der Code sieht folgendermassen aus:
<html>
<head>
<script type="text/javascript" language="JavaScript">
function cbLimit()
{
with(document.forms[0])
{
var cbLimit = 2; // Maximale Auswahl
var cbCount = 0;
var cbSel = 0;
/* Anzahl der Checkboxen und der ausgewählten bestimmen */
for (var n = 0; n < elements.length; n++)
{
if(elements[n].type.toLowerCase() == 'checkbox')
{
cbCount += 1; // ++cbCount oder cbCount++ - sieht so aber schöner aus
cbSel += elements[n].checked;
}
}
/* Auswertung */
for (var n = 0; n < cbCount; n++)
elements[n].disabled = !elements[n].checked && cbSel >= cbLimit;
}
}
</script>
</head>
<body>
<form action="" method="post" name="cbTest">
<input type="checkbox" name="cb_1" onClick="cbLimit();">
<input type="checkbox" name="cb_2" onClick="cbLimit();">
<input type="checkbox" name="cb_3" onClick="cbLimit();">
<input type="checkbox" name="cb_4" onClick="cbLimit();">
<input type="checkbox" name="cb_5" onClick="cbLimit();">
u.s.w.
<input type="checkbox" name="cb_945" onClick="cbLimit();">
</form>
</body>
</html>
Alles anzeigen
Mein Problem ist folgendes:
Die bereits früher gewählten Checkboxen werden anhand von Einträgen aus einer DB geladen und gleich als aktiv angezeigt. Wenn nun die Seite geöffnet wird und die Checkboxen als markiert dargestellt werden, greift das JavaScript nicht und die restlichen Checkboxen werden nicht inaktiv gemacht, auch wenn die erlaubte Anzahl bereits erreicht ist.
Das JavaSkript müsste also nicht nur bei „onKlick“ überprüfen und gegebenenfalls die restlichen Checkboxen schattieren, sonder auch schon beim laden der Seite wenn diese via PHP markiert dargestellt werden.
Für mich als Anfänger, ist diese Aufgabe noch etwas zu hoch für den momentanen Wissensstand.
Mir ist übrigens klar, dass diser Code umgangen werden kann von jemandem der das Formular ausfüllt. Werde später hintendran noch einen Filter mit PHP erstellen. Rein als Frontend jedoch, reicht mir diese Variante völlig aus.
Grüsse
Mark