0

私は4つの成績の平均を取得してテキストフィールドに渡そうとしています。

それは平均を取得します、機能しない唯一の部分はそのgrade.value = grade;部分です

これが私のコードです:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Week #10 JavaScript Assignment: Problem #1</title>
<script type = "text/javascript">
function calcgrade(one,two,three,four){
    sum = parseInt(one.value) + parseInt(two.value) + parseInt(three.value) + parseInt(four.value);
    grade = sum / 4;
    grade.value = grade;
}
</script>
</head>
<body>
<h1>Calculate Grade</h1>
<form>
    <table>
        <tr>
            <th>Assignment #</th>
            <th>Grade</th>
        </tr>
        <tr>
            <td>1</td> 
            <td><input type="text" id="one" name="one"></td>
        </tr>
        <tr>
            <td>2</td>
            <td><input type="text" id="two" name="two"></td>
        </tr>
        <tr>
            <td>3</td>
            <td><input type="text" id="three" name="three"></td>
        </tr>
        <tr>
            <td>4</td>
        <td><input type="text" id="four" name="four"></td>
        </tr>
        <tr><td colspan="2"><input type="button" onclick="calcgrade(one, two, three, four)" value="Calculate Grade"></td></tr>
        <tr>
            <td>Grade:</td>
            <td><input type="text" id="grade" name="grade"></td>
        </tr>
    </td>
</form>
</body>
</html>
4

4 に答える 4

2

JavaScriptで要素を取得する必要があります

gradeEle = document.getElementById("grade");
gradeEle.value = grade;
于 2013-11-12T02:07:16.823 に答える
2

使用する
document.getElementById('grade').value=grade;

于 2013-11-12T02:07:40.860 に答える
1

そのはず:

document.getElementById('grade').value = grade;
于 2013-11-12T02:07:21.653 に答える
1

grade2 つの異なる値を再利用しようとしていますが、保持できるのはそのうちの 1 つだけです。

   grade.value = grade;
// ^ element
//               ^ division result

別の変数を使用する必要があります。

var result = sum / 4;
grade.value = result;

または、完全にスキップできます。

grade.value = sum / 4;

ただし、ids の自動グローバルは常に保証されているわけではなく、通常はそれらに依存することは推奨されないことに注意してください。

name代わりに、 から任意の d フォーム アイテムにアクセスでき<form>、その逆も可能です。

<input type="button" onclick="calcgrade(this.form)" ...>
function calcgrade(form){
    var sum = parseInt(form.one.value) + parseInt(form.two.value) + parseInt(form.three.value) + parseInt(form.four.value);
    form.grade.value = sum / 4;
}

または、getElementById()それぞれを具体的に見つけるために使用します。

function calcgrade() {
    var grade = document.getElementById('grade');
    var one = document.getElementById('one');
    // etc.
}
于 2013-11-12T02:07:34.970 に答える