2015-12-07 54 views
0

这是我的代码。不知道为什么它不工作需要帮助检查我的代码。 我想从用户输入的值中计算平均值和总和。该HTML运作良好,但我的JavaScript代码是不知何故。请帮助使用javascript从文本框中获取价值

<script> 
 
    function calc() { 
 
    int a = parseInt(document.getElementsByName("english").value); 
 
    int b = parseInt(document.getElementsByName("bmelayu").value); 
 
    int c = parseInt(document.getElementsByName("math").value); 
 
    int d = parseInt(document.getElementsByName("geo").value); 
 
    int e = parseInt(document.getElementsByName("hist").value); 
 

 
    int sum = a + b + c + d + e; 
 
    int average = (a + b + c + d + e)/5; 
 

 
    document.getElementById("sum").innerHTML = sum; 
 
    document.getElementById("average").innerHTML = average; 
 
    } < /script>
<html> 
 

 
<head> 
 
    <title>Assignment3</title> 
 
</head> 
 
<script> 
 
    function calc() { 
 
    int a = parseInt(document.getElementsByName("english").value); 
 
    int b = parseInt(document.getElementsByName("bmelayu").value); 
 
    int c = parseInt(document.getElementsByName("math").value); 
 
    int d = parseInt(document.getElementsByName("geo").value); 
 
    int e = parseInt(document.getElementsByName("hist").value); 
 

 
    int sum = a + b + c + d + e; 
 
    int average = (a + b + c + d + e)/5; 
 

 
    document.getElementById("sum").innerHTML = sum; 
 
    document.getElementById("average").innerHTML = average; 
 
    } 
 
</script> 
 

 
<body> 
 
    <form name="form1"> 
 
    English : 
 
    <input type="number" name="english"> 
 
    <br>Bahasa Melayu : 
 
    <input type="number" name="bmelayu"> 
 
    <br>Math : 
 
    <input type="number" name="math"> 
 
    <br>Geography : 
 
    <input type="number" name="geo"> 
 
    <br>History : 
 
    <input type="number" name="hist"> 
 
    <br> 
 
    <button onclick="calc()">Calculate</button> 
 
    </form> 
 
    <p id="sum"></p> 
 
    <p id="average"></p> 
 
</body> 
 

 
</html>

+0

你以外什么样的结果您怎么弄? – unicorn2

+1

尝试在'document.getElementsByName(“english”)'之后添加'[0]''。 –

+0

谢谢,但那不起作用 – Amher25

回答

0

function calc() { 
 
    var a = parseInt(document.getElementById("english").value); 
 
    var b = parseInt(document.getElementById("bmelayu").value); 
 
    var c = parseInt(document.getElementById("math").value); 
 
    var d = parseInt(document.getElementById("geo").value); 
 
    var e = parseInt(document.getElementById("hist").value); 
 
     console.log(a); 
 
    var sum = a + b + c + d + e; 
 
    var average = (a + b + c + d + e)/5; 
 

 
    document.getElementById("sum").innerHTML = sum; 
 
    document.getElementById("average").innerHTML = average; 
 
    }
<html> 
 

 
<head> 
 
    <title>Assignment3</title> 
 
</head> 
 
<body> 
 
    English : 
 
    <input type="number" id="english"> 
 
    <br>Bahasa Melayu : 
 
    <input type="number" id="bmelayu"> 
 
    <br>Math : 
 
    <input type="number" id="math"> 
 
    <br>Geography : 
 
    <input type="number" id="geo"> 
 
    <br>History : 
 
    <input type="number" id="hist"> 
 
    <br> 
 
    <button onclick="calc();">Calculate</button> 
 
    <p id="sum"></p> 
 
    <p id="average"></p> 
 
</body> 
 

 
</html>

+0

谢谢!这项工作就像一个魅力。但我不知道“console.log(a);”是什么? – Amher25

+0

我只是检查值...我忘了删除它:P – Shubham

+0

哦,我明白了,所以你只需修复getElement的“Name”和“Id”。傻,我,谢谢。 – Amher25

0
function calc() { 
    var a = parseInt(document.getElementsByName("english")[0].value); 
    var b = parseInt(document.getElementsByName("bmelayu")[0].value); 
    var c = parseInt(document.getElementsByName("math")[0].value); 
    var d = parseInt(document.getElementsByName("geo")[0].value); 
    var e = parseInt(document.getElementsByName("hist")[0].value); 

    var sum = a + b + c + d + e; 
    var average = (a + b + c + d + e)/5; 

    document.getElementById("sum").innerHTML = sum; 
    document.getElementById("average").innerHTML = average; 
} 
+0

它不起作用。不过谢谢 – Amher25

+0

对不起。看来你可以解决这个问题,但你也需要删除'form'标签。 –

0

嘿,我很高兴你找到你的答案,但我想,如果你看到一个不同的,可能帮助你方法:

function calc() { 
 
    var elements = Array.prototype.slice.call(document.querySelectorAll(".grade-val")); 
 
    var grades = elements.map(function(element) { 
 
    return element.value; 
 
    }); 
 

 
    var sum = grades.reduce(function(s, c) { 
 
    return parseInt(s, 10) + parseInt(c, 10); 
 
    }); 
 
    var average = sum/grades.length; 
 

 
    document.getElementById("sum").innerHTML = sum; 
 
    document.getElementById("average").innerHTML = average; 
 
}
<html> 
 

 
<head> 
 
    <title>Assignment3</title> 
 
</head> 
 

 
<body> 
 
    English : 
 
    <input type="number" class="grade-val" name="english"> 
 
    <br>Bahasa Melayu : 
 
    <input type="number" class="grade-val" name="bmelayu"> 
 
    <br>Math : 
 
    <input type="number" class="grade-val" name="math"> 
 
    <br>Geography : 
 
    <input type="number" class="grade-val" name="geo"> 
 
    <br>History : 
 
    <input type="number" class="grade-val" name="hist"> 
 
    <br> 
 
    <button onclick="calc();">Calculate</button> 
 
    <p id="sum"></p> 
 
    <p id="average"></p> 
 
</body> 
 

 
</html>

请注意,我添加了一个类grade-val在每个元素,如果你只是想添加其他受考虑到你没有修改代码,但只有标记(插入具有相同类的新元素)。就那么简单。

这将在IE8+

0

我有固定的工作片段 - 你已经做出了一些错误的存在。现在,它的工作原理

function calc() { 
 
    var a = parseInt(document.getElementsByName("english")[0].value); 
 
    var b = parseInt(document.getElementsByName("bmelayu")[0].value); 
 
    var c = parseInt(document.getElementsByName("math")[0].value); 
 
    var d = parseInt(document.getElementsByName("geo")[0].value); 
 
    var e = parseInt(document.getElementsByName("hist")[0].value); 
 

 
    var sum = a + b + c + d + e; 
 
    var average = (a + b + c + d + e)/5; 
 

 
    document.getElementById("sum").innerHTML = sum; 
 
    document.getElementById("average").innerHTML = average; 
 
    }
<html> 
 

 
<head> 
 
    <title>Assignment3</title> 
 
</head> 
 
<script> 
 
    function calc() { 
 
    int a = parseInt(document.getElementsByName("english")[0].value); 
 
    int b = parseInt(document.getElementsByName("bmelayu")[0].value); 
 
    int c = parseInt(document.getElementsByName("math")[0].value); 
 
    int d = parseInt(document.getElementsByName("geo")[0].value); 
 
    int e = parseInt(document.getElementsByName("hist")[0].value); 
 

 
    int sum = a + b + c + d + e; 
 
    int average = (a + b + c + d + e)/5; 
 

 
    document.getElementById("sum").innerHTML = sum; 
 
    document.getElementById("average").innerHTML = average; 
 
    } 
 
</script> 
 

 
<body> 
 
    <form name="form1"> 
 
    English : 
 
    <input type="number" name="english"> 
 
    <br>Bahasa Melayu : 
 
    <input type="number" name="bmelayu"> 
 
    <br>Math : 
 
    <input type="number" name="math"> 
 
    <br>Geography : 
 
    <input type="number" name="geo"> 
 
    <br>History : 
 
    <input type="number" name="hist"> 
 
    <br> 
 
    <button onclick="calc()">Calculate</button> 
 
    </form> 
 
    <p id="sum"></p> 
 
    <p id="average"></p> 
 
</body> 
 

 
</html>

相关问题