获取两个具有onChange事件的文本框的商

时间:2017-07-07 12:59:19

标签: javascript

我得到ua和ub的总和并显示在tu文本框上。我乘以ua 和ga文本框并显示在uu文本框以及ub ang gb上。得到 uu和a的总和并显示在tt文本框中。我想得到商 tt和tu并在gpa文本框上显示,但它不起作用。请帮忙。 提前谢谢。

    function sum(){
    var ua = document.getElementById('ua').value;
    var ub = document.getElementById('ub').value;
    var result = parseInt(ua)  + parseInt(ub);
    if (!isNaN(result)) {
    document.getElementById('tu').value = result;
    document.getElementById('tu').dispatchEvent(new Event('change'));
    }
    }
    function suma(){
    var ua = document.getElementById('ua').value;
    var ga = document.getElementById('ga').value;   
    var result = parseInt(ua)  * parseInt(ga);
    if (!isNaN(result)) {
    document.getElementById('uu').value = result;
    document.getElementById('uu').dispatchEvent(new Event('change'));
    }
    }
    function sumb(){
    var ub = document.getElementById('ub').value;
    var gb = document.getElementById('gb').value;   
    var result = parseInt(ub)  * parseInt(gb);
    if (!isNaN(result)) {
    document.getElementById('a').value = result;
    document.getElementById('a').dispatchEvent(new Event('change'));
    }
    }
    function s(){
    var uu = document.getElementById('uu').value;
    var a = document.getElementById('a').value;
    var result = parseInt(uu)  + parseInt(a);
    if (!isNaN(result)) {
    document.getElementById('tt').value = result;
    document.getElementById('tt').dispatchEvent(new Event('change'));
    }
    }
    function g(){
    var tt = document.getElementById('tt').value;
    var tu = document.getElementById('tu').value;
    var result = parseFloat(tt)  / parseFloat(tu);
    if (!isNaN(result)) {
    document.getElementById('gpa').value = result;
    }
    }


 
   <input type="text"  id="ua" name="ua" size="7" onkeyup="sum();">
    <input type="text"  id="ga" name="ga" size="7" onkeyup="suma();">
    <input type="text"  id="uu" name="uu" size="7" onchange="s();"/>

    <input type="text"  id="ub" name="ub" size="7" onkeyup="sum();">
    <input type="text"  id="ga" name="ga" size="7" onkeyup="sumb();">
    <input type="text"  id="a" name="a" size="7" onchange="s();"/>

    <input type="text" id="tu" name="tu" onchange="g();"/>
    <input type="text" id="tt" name="tt" onchange="g();"/>

    <label>GPA</label>
    <input type="text" id="gpa" />

1 个答案:

答案 0 :(得分:0)

据我所知,代码中的所有内容都有效(在编辑之后),除了您希望在函数gb中获取ID为sumb的元素,但元素不会不存在。正如您现在所做的那样,您的代码会显示tt的值(HTML中的第二个)除以tu的值(HTML中的第一个)。

那就是说,当你说“它不能正常工作”时,我仍然不确定你的意思。我唯一能想到的是你必须从tutt输入元素中删除焦点才能使gpa元素显示结果,因为你使用了{ {1}}代替onchange

正如其他人所指出的那样,我也想强调一下,你应该尝试给你的变量有意义的名字。当你在三年内查看你的代码时,你认为你仍然会知道“gpa”和“uu”是什么吗?

在以下代码段中,我只复制了与该部门相关的onkeyup。我使用addEventListener而不是内联事件侦听器(<input>)并使其更具可读性:

onkeyup="sumb();"
var dividendElement = document.getElementById('dividend');
var divisorElement = document.getElementById('divisor');
var resultElement = document.getElementById('result');

function updateQuotient () {
  var result = parseFloat(dividendElement.value) / parseFloat(divisorElement.value);
  if (!isNaN(result)) {
    resultElement.value = result;
  }
}

dividendElement.addEventListener('keyup', updateQuotient);
divisorElement.addEventListener('keyup', updateQuotient);