2015-12-07 2 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

Попробуйте добавить '[0]' после 'document.getElementsByName (" english ")'. –

+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)»? For? – Amher25

+0

Я просто проверял значение ... Я забыл его удалить: P – Shubham

+0

О, я вижу, поэтому вы просто фиксируете мои «Имя» и «Идентификатор» для getElement. Глупый, спасибо. – 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 по каждому из элементов, если вы просто хотите добавить еще один предмет, которые необходимо принять во внимание, вы не должны изменять код, но только markup (добавьте новый элемент с тем же классом). Просто как тот.

Это будет работать на 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>

Смежные вопросы