0

いくつかの個々の成績を指定して最終成績を計算し、結果をhtmlページに出力するJSコードを書いていますが、イベントと関数をトリガーすると、一瞬間違った答えを出力し、入力された値とともにすぐに消えますテキストボックス。

HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>Problem 2</title>
        <script src="grades.js" type="text/javascript"></script>
    </head>

    <body>
        <h1>Grade Calculator</h1>
        <form id ="myForm">
            <div id="assignments">
            HW <input type="text" size="1"/> / <input type="text" size="1"/><br/>
            HW <input type="text" size="1"/> / <input type="text" size="1"/><br/>
            HW <input type="text" size="1"/> / <input type="text" size="1"/>
            </div>

            <div>
                <input type="checkbox" /> Curve +5?
            </div>

            <div id="resultsarea">
                <p>
                    <!--add buttons here -->
                    <button id="comp">Compute</button>
                    <button id="clr">Clear</button>
                </p>

                <!-- add results here -->
            </div>
        </form>
    </body>
</html>

JS:

window.onload = pageLoad;

function pageLoad()
{
    var cbutton = document.getElementById("comp");
    cbutton.onclick = compute;
}

function compute()
{
    var values = document.getElementsByTagName("input");
    var marks = 0;
    var total = 0;
    for (var i=0; i < values.length; i++)
    {
        if(values[i].type == "text")
        {
            if (i%2 == 0)
            marks += parseInt(values[i].value);
            else
            total += parseInt(values[i].value);
        }
    }
    var result = Math.round(marks/total);
    document.writeln(result);
}
4

0 に答える 0