Marco: Checkboxen sollen sich wechselseitig ausschließen

Beitrag lesen

Okay, ich hab's jetzt! *freu*

Der Code ist zwar mehr als unelegant und muss vermutlich für jeden Einsatz neu angepasst werden (da die Checkboxen-Matrix in der Praxis jedes Mal andere Ausmaße haben wird), aber es ist auf jeden Fall ersteinmal eine funktionierende Grundlage. Und die Anpassungen werden dank Copy & Paste und Suchen & Ersetzen recht schnell von der Hand gehen. Und bevor ich jetzt noch mehrere Tage damit zubringe, den Code zu verschlanken, kann ich das irgendwann mal angehen, wenn ich mehr Ahnung von Schleifen, Arrays usw. habe... Vielen Dank noch einmal an alle Tippgeber!

Hier mal exemplarisch mein Code für eine Checkboxen-Matrix aus 2 Zeilen und 5 Spalten, wobei die letzte Spalte nur exklusiv angewählt werden kann:

  
var NMUL0 = "answer0-5";  
var NMUL1 = "answer1-5";  
  
// Funktion zum Überprüfen der selektierten Zelle  
function nmul() {  
var objSrc = (window.event.target)? window.event.target : window.event.srcElement;  
  
// deselektiere letzte Zelle  
if ((objSrc.name == "answer0-1") || (objSrc.name == "answer0-2") || (objSrc.name == "answer0-3") || (objSrc.name == "answer0-4"))  
   {nmul0a();}  
if ((objSrc.name == "answer1-1") || (objSrc.name == "answer1-2") || (objSrc.name == "answer1-3") || (objSrc.name == "answer1-4"))  
   {nmul1a();}  
  
// deselektiere erste Zellen  
if (objSrc.name == NMUL0)  
   {nmul0b();}  
if (objSrc.name == NMUL1)  
   {nmul1b();}  
}  
  
  
// Funktionen zum Deselektieren der jeweiligen NMUL-Zelle  
function nmul0a() {  
document.getElementsByName(NMUL0)[0].checked = false;  
}  
function nmul1a() {  
document.getElementsByName(NMUL1)[0].checked = false;  
}  
  
  
// Funktionen zum Deselektieren der jeweiligen MULTI-Zellen  
function nmul0b() {  
document.getElementsByName("answer0-1")[0].checked = false;  
document.getElementsByName("answer0-2")[0].checked = false;  
document.getElementsByName("answer0-3")[0].checked = false;  
document.getElementsByName("answer0-4")[0].checked = false;  
}  
function nmul1b() {  
document.getElementsByName("answer1-1")[0].checked = false;  
document.getElementsByName("answer1-2")[0].checked = false;  
document.getElementsByName("answer1-3")[0].checked = false;  
document.getElementsByName("answer1-4")[0].checked = false;  
}