0

ユーザー入力 (整数) を受け取り、その入力を配列に追加して、整数を合計し、その合計を Web ページにテキストとして表示するフォームを作成する必要があります。解決に近づいたような気がしますが、送信ボタンを押しても何も起こりません。私はJavascriptに非常に慣れていないため、これはクラスの割り当てです。このコードが正しいかどうか、またはエラーの可能性がある場所を提案できる人はいますか?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Adding Numbers</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p><script type="javascript">
/* <![CDATA[ */
function addNums() {
var total = 0;
var intergers = new Array(5);
intergers[0] = document.forms[0].element[0].value;
intergers[1] = document.forms[0].element[1].value;
intergers[2] = document.forms[0].element[2].value;
intergers[3] = document.forms[0].element[3].value;
intergers[4] = document.forms[0].element[4].value;
for (i=0; i<intergers.length; i++) {
    total += intergers[i];
    }
return total;
document.write("The total for the intergers entered is " + total + "."</p>);
}   

/* ]]> */
</script><strong>Please enter an interger into each of the following text boxes.<br />
Press the Submit button to see a total of all the intergers.</strong></p>
<form action="" name="intergers" onsubmit="addNums();" >    
<p>1st Interger<br/>
    <input type="text" name="num1" value="" size="10" /></p>
<p>2nd Interger<br/>
    <input type="text" name="num2" value="" size="10" /></p>
<p>3rd Interger<br/>
    <input type="text" name="num3" value="" size="10" /></p>
<p>4th Interger<br/>
    <input type="text" name="num4" value="" size="10" /></p>
<p>5th Interger<br/>
    <input type="text" name="num5" value="" size="10" /></p>
<p><input type="button" name="submit" value="Submit" /></p> 
</form>
</body>
</html>`enter code here`
4

1 に答える 1

1

まず、すべての整数に余分な R があります! :-)

コードの問題の 1 つは、入力値が常に文字列であり、JavaScript が+数値の加算と文字列の連結の両方に使用することです。値を追加する前に、すべての値を強制的に数値にする必要があります。

for (i=0; i<intergers.length; i++) {
    total += parseInt(intergers[i], 10);
}

また

for (i=0; i<intergers.length; i++) {
    total += +intergers[i], 10;
}

編集:他にもいくつかの問題がありますが、私は気づきました...それらのいくつか:

  • type="javascript"script タグでは使用しないでください。削除してください。
  • elementにはプロパティがありませんdocument.forms[0]。それはする必要がありますelements
  • あなたのボタンもそれらの要素の1つとしてリストされます...
  • フォームが送信されないようにする必要があります。そうしないと、結果が表示されません
  • document.write二重に間違っているコンテキストで使用しようとしています: ページは既に読み込まれており (そのため、出力する前にページ全体が消去されます)、returnステートメントの後で呼び出しようとしています (コードに到達できない場合)。 .
  • </p>内部に document.write の呼び出しもあり、構文エラーが発生しています。
  • ヒント: ブラウザーの開発者ツールを開き、常にコンソールでエラーを確認してください。
于 2013-10-11T21:43:06.103 に答える