0

私はHTMLを学んでいる大学生です。私が完了しなければならない課題は、簡単な成績計算です。すべてを計算する単一のボタンがあり、値は 3 つの空のテキスト フィールド (合計、平均、パーセンテージ) に送られます。私が抱えている問題は、合計が計算されてフィールドに表示されることですが、数値の後に [オブジェクト] が続きます。平均フィールドには NaN が表示され、パーセンテージ フィールドは空のままです。これが私のコードです。

      <input type="button" value="Click to calculate" 
      onclick="fullmark = parseFloat(document.getElementById('fullBox').value);
                science = parseFloat(document.getElementById      ('scienceBox').value);
                math = parseFloat(document.getElementById('mathBox').value);
                computer = parseFloat(document.getElementById('computerBox').value);
                english = parseFloat(document.getElementById('englishBox').value);
                History = parseFloat(document.getElementById('historyBox').value);
               total=science+math+computer+english+history;
               average=(total/5);
               percentage=(total/fullmark)*100;
               document.getElementById('totalBox').value=total;
               document.getElementById('averageBox').value=average;
               document.getElementById('percentageBox').value=percentage;">
4

1 に答える 1

0

History最初に変数名として書きましたがhistory、値を計算/割り当てるときに使用したためtotal、それは別の変数です。JavaScript の識別子大文字と小文字が区別されます。

その時点で未定義の変数に関するエラーでスクリプトが中止されない唯一の理由は、それwindow.historyが存在することです。それは、ウィンドウの現在のナビゲーション履歴を保持するオブジェクトです。(すべてのグローバル変数は window オブジェクトのプロパティであるため、 の使用によってhistory解決されるものです。)また、オブジェクトで[object]あるため、それを文字列コンテキストに転送したときに結果として得られるのは です (これは、 の使用によって発生します+。は加算演算子と文字列連結演算子の両方です)。

それとは別に、すべてのコードをonclickハンドラーに書き込むのはちょっとひどいスタイルです。次に、このようなものに適切な関数を使用する方法を学びましょう ;-)

于 2014-02-28T00:21:40.950 に答える