oninput="
let x=document.getElementById('x');
let a=document.getElementById('a');
let b=document.getElementById('b')
x.value=parseInt(a.value)+parseInt(b.value);"
Let er wel op dat de value altijd ingesteld is. Je zal ook moeten controleren of checked gedaan is.
Jan
[size=xsmall]Toevoeging op 20/01/2020 07:59:25:[/size]
<!DOCTYPE html>
<html lang="nl">
<head>
<title>Testje</title>
<script>
function c() {
let a = document.getElementById('a');
let b = document.getElementById('b');
let x = document.getElementById('x');
x.value = (a.checked ? parseInt(a.value) : 0) +(b.checked ? parseInt(b.value) : 0);
}
</script>
</head>
<body>
<form oninput="c();">
<input type="checkbox" id="a" name="b" value="10" />
<input type="checkbox" id="b" name="b" value="58" />
=<output id="x" for="a b">0</output>
</form>
</body>
</html>
Hm, je zou ook kunnen "vermenigvuldigen" met checked (boolean wordt dan wss getypecast naar 0 of 1), maar dat is misschien minder netjes.
Bovenstaande functie doet misschien wel wat deze moet doen, maar is nou niet bepaald generiek. Deze is bijna compleet hard coded. Ook zul je, als je een checkbox toevoegt, de implementatie van de functie moeten veranderen, wat niet optimaal is (foutgevoelig).
Omdat de checkboxen blijkbaar gerelateerd zijn, loont het misschien de moeite om deze eenzelfde naam te geven met array-haken. Als er dan nog steeds de behoefte is om deze te identificeren als "a" of "b" dan kun je deze als index aan het array meegeven. Vervolgens kun je over al deze elementen itereren door in de functie de naam van het array mee te geven. Op die manier heb je ook meteen een generieke(re) functie.
EDIT: misschien wil je het resultaat ook retourneren, in plaats van rechtstreeks toekennen aan een veld. Op die manier wordt de kans ook groter dat je de functie kunt hergebruiken.