2017-07-06 5 views
0

onkeyupイベントを持つテキストボックスの合計を取得したいとします。単位をグレードで乗算し、その和をaとbである3番目のテキストボックスに表示します。その後、aとbを追加して合計のテキストボックスに合計を表示します。他のテキストボックスにonkeyupイベントと表示値を持つテキストボックスを追加する

合計テキストボックスに合計を表示していません。私は問題がonkeyup="s();">にあると思う。

これは私のコードです:

function suma(){ 
 
var unitsA = document.getElementById('unitsA').value; 
 
var gradesA = document.getElementById('gradesA').value; \t 
 
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; \t 
 
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" />

答えて

1

間違ったid名を使用している、このコードは動作します:

function suma(){ 
 
var unitsA = document.getElementById('unitsA').value; 
 
var gradesA = document.getElementById('gradesA').value; \t 
 
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; \t 
 
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" />

+0

合計フィールドは、合計を与えるものではありません。 – JiFus

+0

@JiFusは今それをチェックします。 – Dij

+0

'A'の前に' B'を記入しても、それはまだ動作しません。また、合計は「A + B」でなければなりません。 – JiFus

1

あなたのコードは非常に持っています私のタイプミスと問題はここで解決された解決策です。

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" />

関連する問題