Hallo Franz,
d.h. du summierst die Zeilen und die Spalten? Knifflig, das mit CSS Selektoren zu lösen 😀
Sind die genannten IDs die realen IDs deiner Seite? Wenn ja, sind sie ungeschickt gewählt, weil die Namensvergabe inkonsistent ist.
Spalte 1 sind nur Namen? Brauchen die überhaupt IDs?
Die Spalten 2 bis N sind Wertespalten. Ob Du da nun mit _1 oder _2 als Suffix beginnst, ist gehupft wie gesprungen, aber das Suffix der zu summierenden Felder und das Suffix des Ergebnisfeldes sollten identisch sein. Das vereinfacht das Programmieren deutlich, aber das scheint bei Dir nicht der Fall. Ein Ergebnisfeld ergebnis_z_10_1
sollte Daten der Eingabefelder wert1_1
, wert2_1
etc beinhalten.
Wie auch immer: Wenn die IDs der Spalte 2 "wert1_2", "wert2_2", ..., "wert8_2" heißen, dann muss natürlich auch der Ausdruck, der diese IDs erzeugt, passend dazu sein. Das wäre ["wert"+i+"_2"].
Dieses Suffix kannst Du der rechnen() Funktion auch als Parameter mitgeben. D.h. bei den input-Feldern der ersten Spalte könntest Du oninput="rechnen(1)"
schreiben, und in rechnen verwendest Du das:
function rechnen(spalte) {
let summe = 0;
for (let i=1; i<=8; i++)
summe += getInputAsFloat(document.formular1["wert"+i+"_"+spalte]);
document.formular1["ergebnis_z_10_"+spalte].value = summe;
}
Schreib das nicht einfach ab. Überlege genau, welche Werte Du brauchst, damit es zu den von Dir gewählten Namen passt.
Ob Du beim Ergebnis .value oder .text verwenden musst hängt davon ab, was für ein HTML Ding das ist.
Ich sehe aber noch ein grundsätzliches Bedienbarkeitsproblem in deiner Seite: Ein Eingabefeld muss eine Beschriftung (<label>) haben. Du hast aber nur vor jeder Zeile eine Beschriftung für diese Zeile, und vermutlich ist die auch nicht an ein Eingabefeld gebunden. Wer sehbehindert ist und einen Screenreader braucht, kommt nicht zurecht. Es ist natürlich deine Entscheidung, ob Du diese Form von Able-ism - zumindest vorläufig - hinnehmen willst.
Rolf
sumpsi - posui - obstruxi