Reputation: 1
I want to get the sum of the textbox which has an onkeyup event. units multiplied by grades and display its sum to the third textbox which is the a and b, after that I want to add the a and b and display the sum on the total textbox.
But it's not displaying the sum on the total textbox. I think the problem is on the onkeyup="s();">
.
This is my code:
function suma(){
var unitsA = document.getElementById('unitsA').value;
var gradesA = document.getElementById('gradesA').value;
var result = parseInt(unitsA) * parseInt(gradesA);
if (!isNaN(result)) {
document.getElementById('a').value = result;
}
}
function sumb(){
var unitsB = document.getElementById('unitsB').value;
var gradeB = document.getElementById('gradeB').value;
var result = parseInt(unitsB) * parseInt(gradeB);
if (!isNaN(result)) {
document.getElementById('b').value = result;
}
}
function s(){
var a = document.getElementById('a').value;
var b = document.getElementById('b').value;
var result = parseInt(a) + parseInt(b);
if (!isNaN(result)) {
document.getElementById('total').value = result;
}
}
<input type="text" id="unitsA"/>
<input type="text" id="gradeA" onkeyup="suma();"/>
<input type="text" id="a" name="a" size="7" onkeyup="s();"/>
<input type="text" id="unitsB"/>
<input type="text" id="gradeB" onkeyup="sumb();"/>
<input type="text" id="b" name="b" size="7" onkeyup="s();"/>
<input type="text" id="total" readonly="readonly" />
Upvotes: 0
Views: 348
Reputation: 9808
you are using wrong id name, this code works:
function suma(){
var unitsA = document.getElementById('unitsA').value;
var gradesA = document.getElementById('gradesA').value;
var result = parseInt(unitsA) * parseInt(gradesA);
if (!isNaN(result)) {
document.getElementById('a').value = result;
s();
}
}
function sumb(){
var unitsB = document.getElementById('unitsB').value;
var gradeB = document.getElementById('gradeB').value;
var result = parseInt(unitsB) * parseInt(gradeB);
if (!isNaN(result)) {
document.getElementById('b').value = result;
s();
}
}
function s(){
var a = document.getElementById('a').value;
var b = document.getElementById('b').value;
var result = parseInt(a) + parseInt(b);
if (!isNaN(result)) {
document.getElementById('total').value = result;
}
}
<input type="text" id="unitsA"/>
<input type="text" id="gradesA" onkeyup="suma();"/>
<input type="text" id="a" name="a" size="7" onchange="s();"/>
<input type="text" id="unitsB"/>
<input type="text" id="gradeB" onkeyup="sumb();"/>
<input type="text" id="b" name="b" size="7" onchange="s();"/>
<input type="text" id="total" readonly="readonly" />
Upvotes: 1
Reputation: 8552
Your code has some typos and issues here is the solved solution.
function suma() {
var unitsA = document.getElementById('unitsA').value;
var gradesA = document.getElementById('gradeA').value;
var result = parseInt(unitsA) * parseInt(gradesA);
if (!isNaN(result)) {
document.getElementById('a').value = result;
document.getElementById('a').dispatchEvent(new Event('change'));
}
}
function sumb() {
var unitsB = document.getElementById('unitsB').value;
var gradeB = document.getElementById('gradeB').value;
var result = parseInt(unitsB) * parseInt(gradeB);
if (!isNaN(result)) {
document.getElementById('b').value = result;
document.getElementById('b').dispatchEvent(new Event('change'));
}
}
function s() {
var a = document.getElementById('a').value;
var b = document.getElementById('b').value;
var result = parseInt(a) + parseInt(b);
if (!isNaN(result)) {
document.getElementById('total').value = result;
}
}
<input type="text" id="unitsA" />
<input type="text" id="gradeA" onkeyup="suma();" />
<input type="text" id="a" name="a" size="7" onchange="s()" />
<input type="text" id="unitsB" />
<input type="text" id="gradeB" onkeyup="sumb();" />
<input type="text" id="b" name="b" size="7" onchange="s()" />
<input type="text" id="total" readonly="readonly" />
Upvotes: 1