Formular - max. Checkboxen aktivierung
croti
- html
Hallo,
kann mir jemand sagen, wie ich ein Formular so einrichte, dass z.B. max. 6 checkboxen aktiviert werden?
Danke schon mal,
MfG Coti
Gugucks Coti,
meinst du das so:
Du hast ein Formular mit 20 Checkboxen, Userlein soll davon aber nur maximal 6 anklicken dürfen?
Wenn ja, wirst du ohne JavaScript nicht auskommen. Also werde mal ein bisschen genauer.
Liebe Grüße, Uschi
Jep, genau, es sollen mehrere checkboxen in das formular,
wovon der besucher aber nur eine gewisse anzahl clicken darf.
es geht um ein url-submit script, welches sonst bei der bestätigungsseite zu unübersichtlich wird, wenn man zuviele aussucht.
(script: simplesubmit)
Hallo,
das folgende Script lässt deine Submit-Routine in Ruhe und aktiviert respektive deaktiviert Checkboxen onclick je nach bereits gewählter Anzahl. Voraussetzung ist, dass deine Seite nicht unter Netscape 4.x laufen muss.
Ab IE 5.0 und Netscape 6 / Mozilla haben Formularelemente eine Eigenschaft disabled, und die macht sich das Script zu Nutze. Außerdem erfolgt der Zugriff auf die Checkboxen über DOM-Syntax (document.getElementsByName("ck"), und auch das würden ältere Browser nicht verstehen.
Gucks dir mal an und schau, ob du was damit anfangen kannst.
Liebe Grüße, Uschi
Anbei der Code:
<html>
<head>
<title>Checkboxen deaktivieren</title>
<script language="JavaScript">
var maxChecks = 2;
function limitChecks(el) {
/* Die folgende Zeile sammelt dir alle Elemente mit dem Namen "ck"
* in einem Array mit dem Namene cks
*/
cks = document.getElementsByName("ck");
/* Variante 1: Userlein hat eine Checkbox aktiviert */
if(el.checked == true) {
/* Checken, wieviele Checkboxen bereits checked sind */
var currentChecks = 0;
for(var i=0; i<cks.length; i++) {
if(cks[i].checked == true) currentChecks++;
}
/* Wenn die erlaubte Anzahl von Checks erreicht ist, werden
* alle noch nicht geckeckten auf disabled gesetzt
*/
if(currentChecks == maxChecks) {
for(var i=0; i<cks.length; i++) {
if(!cks[i].checked) cks[i].disabled = true;
}
}
/* Variante 2: Userlein hat eine Checkbox deaktiviert.
* In diesem Falle werden alle gesperrten Boxen wieder freigeschaltet.
*/
} else {
for(var i=0; i<cks.length; i++) {
if(cks[i].disabled) cks[i].disabled = false;
}
}
}
</script>
</head>
<body>
<form id="myForm">
<p>Bitte nicht mehr als zwei Checkboxen ankreuzen.</p>
<input type="checkbox" name="ck" value="1" onclick="limitChecks(this)" /> Checkbox 1<br />
<input type="checkbox" name="ck" value="2" onclick="limitChecks(this)" /> Checkbox 2<br />
<input type="checkbox" name="ck" value="3" onclick="limitChecks(this)" /> Checkbox 3<br />
<input type="checkbox" name="ck" value="4" onclick="limitChecks(this)" /> Checkbox 4<br />
</form>
</body>
</html>