• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] checkbox abfragen logisch verknüpfen

schlegel.berlin

New member
Hallo "Freunde",
nun war ich schon sehr lange nicht mehr hier, weil ich schlicht ziemlich lange außer Gefecht war.
Es hatte mit einem Unfall und einer sehr langen Reha zu tun und war nicht wirklich schön...

Aber nun bin ich wieder einigermaßen an Deck und setze mich seit ewigen Zeiten wieder mal vor den PC um meine Synapsen wieder auf Vordermann zu bringen.

Und da habe ich gleich ein “Problem“, von dem ich eigentlich gar nicht verstehe, weshalb ich das habe, da es sich eigentlich um absolutes Basiswissen handelt. Trotzdem stelle ich mich grad total blöd an…
Also, 6 Checkboxen und MINDESTENS eine davon MUSS aktivier sein, also logisch verknüpfen mit “&&“

Die “Abfrage“ EINER chebox könnte z.B. so aussehen und das funzt natürlich auch
Code:
if(document.Formular.wert_1.checked != true)
	{
	alert("Es muss mindesten 1 Checkbox aktiviert sein!");
       document.Formular. wert_1.focus();
       return false;
	}

Wie aber verknüpfe ich jetzt z.B. die Variablen “wert_1“, “wert_2“,usw.?

Vielen Dank für Eure Geduld mit der ""doofen Ziege und
LG, Karin
 
Zuletzt bearbeitet:
Ja, meine Lieben,
damit komme ich leider (noch) nicht klar.
Durch mein unfallbedingte lange Krankheit (mehereMonate Koma) musste ich und MUSS ich vieles neulernen. Das fing mit Sprechen und Schreiben an und war schon ein bisschen mühsam ...
Das heißt, ich bin (noch) auf viel detailliertere Hilfe von Euch angewiesen, weil es sonst unglaublich entmutigend ist....
Also bitte, bitte, helft mir, wieder ein bisschen "auf die Beine" zu kommen..
Lieben Dank im Voraus an Euch und eine schönen Tag wünsch ich Euch auch noch :)
Karin
 
Ich würde da auch nicht Array.reduce(), sondern Array.some() verwenden:
Code:
var checkboxNames = ["wert_1", "wert_2", "wert_3", ...];
var form = document.Formular; // Ich würde hier ja eher mit document.getElementById(...) arbeiten oder mir das Formular direkt aus dem Kontext des Funktionaufrufes holen
var checkboxes = [];
checkboxNames.forEach(function(name){
	var entry = form[name];
	if (entry instanceof NodeList){
		for (var i = 0; i < entry.length; i += 1){
			checkboxes.push(entry[i]);
		}
	}
	else if (entry instanceof Node){
		checkboxes.push(entry);
	}
});

if (checkboxes.length && checkboxes.some(function(checkbox){
	return !checkbox.checked
})){
	alert("Es muss mindesten 1 Checkbox aktiviert sein!");
	checkboxes[0].focus();
	return false;
}
 
Vielen lieben Dank kkapsner (an Dein Alias erinnere ich mich auch irgendwie),
das werde ich mal aufgreifen, weil ich den Codeschnipsel, den Du gepostet hast, echt nachvollziehen kann, was für mich eine großen Fortschritt bedeutet.
Und sorry, dass ich icht ständig dran blebe. Abe rwenn ichei oder zwei Tage "gerabeitet" habe, brcu ich einfach einwenig Erholung, weil es wirklich anstrengend ist und so sehr müde macht....
Ich brauch halt viel Geduld. Hab lerne müssen, dass es ohne nich geht :)
Aber keine Sorge, mit geht es gut und ich bin fröhlich. Jedenfalls meistens :)

Noch mal lieben Dank u. ein schönes WE.
Ich melde mich auf jeden Fall zurück, hoffentlich mit einer kleinen Erfolgsgeschichte :)
LG, Karin

- - - Aktualisiert - - -

Lieber "kkapsner";
also, grundsätzlich funktioniert es perfekt, aber etwas versteh ich nicht und weiß auch nicht so recht wie ich es hingkrieg (umschreiben muss).
Jetzt ist das Ergebnis eer Abfrage so, dass ALLE checkboxen "true" sein müssen.
Es soll ja aber so sein, dass es reicht, wenn NUR EINE aktiv ist.

Ihc find den Fehler nicht :-(

Nun habe ich eine Bitte an Dich, wenne s Dir nichtzu viel ist:
Nämlich die, dass Du nicht NUR die notwenige "Änderung" machst, sondern mr auch erklärst, wo ich nicht erkannt habe, wie die Abfrage gemacht ist...

Ich danke Dir schonnim Voraus für Deine Hilfe,
LG, Karin

PS: Hat aber keine Eile, weil ich für heute schon an der "Belastungsgrenze" bin.
Ich MUSS also jetzt aufhören und bis mindesten morgen warten, ehe ich weitermache kann
 
Noch mal lieben Dank
Bitte - gern geschehen.

Es soll ja aber so sein, dass es reicht, wenn NUR EINE aktiv ist.
OK - da hatte ich irgendwie einen Knoten im Hirn. Es muss Array.every() und nicht Array.some() verwendet werden. Die Bedingung soll ja wahr sein, wenn alle Checkboxen nicht angehakt sind... und nicht, wenn irgendeinen nicht angehakt ist.


Ich MUSS also jetzt aufhören und bis mindesten morgen warten, ehe ich weitermache kann
Kein Stress. Erhohl' dich nur gut.
 
Erst einmal danke für die "Aufklärung",
Du hast sicher schon an meinen vielen Tippfehlern in der letzten Antwort erkannt, dass ich an der Grenze meiner Belastungsfähigkeit (des Hirns :) ) angekommen war.
Das ist immer ein untrügliches und typisches Zeichen dafür ...

Und lieben Dank, "kkapsner", für die guten Wünsch, und nein, nein, ich mach mir keine Stress, ich habe, nein ich MUSSTE lernen, mir Zeit zu lassen.
Inzwischen bin ich da auch recht gelassen, weil ich die deutlichen Forschritte bemerke, auch wenn es relativ langsan geht.
Dennoch happy, denn noch vor 3 Monaten wäre ich nicht in der Lage gewesen, das hier zu schreiben :)

Dafür bin ich schon ganz gut, oder ? :)
 
Auch nicht mehr, als ich mache...

Lieber "kkapsner",
erst noch einmal lieben Dank für Deine Hilfe.
Nun brauchte ich einige Tgae um weiter zu machen, weil's mir grad nicht so richtig gut ging (rein kopfmäßig).
Heute habe ich jetzt nochmal dran gesessen und jetzt funktoniert es genau so wie es soll.

Da ich jacht Konkretes mache, sondern nur meine Kopf trainieren will, hab ich noch ein wenig mit dem Cde-Schnipsel herum experimentiert.
Das hat Spaß gemacht, weil sich huet wieder einmal Erfolge einstellten.
Es ist einfach toll für mich, wenn ich merke, dass meienSynapsen ab und an Rock'n Roll tanzen.

Ich werde zwar vermutlich nie wieder wirklich programmieren können, aber das ict nich schlimmfür mich. Es st einfach ein wahnsinnig gute Gehirntrainig. Sagen jedenfall meine Ärtzte und freuensich, dass ich da eine Möglchkeit habe, die die allermeisten in meiner Situation eben nicht haben.
Und ich freue mich über dieses "Privileg" :)
Aber jetzt muss ich ins Bett. Bin müde :-(

LG, Karin
 
Zurück
Oben