0

基本的なフォーム、3 つのドロップダウン リスト、およびボタンを作成しました。ダウン リストの 3 つの値を乗算しようとしています。関数にデータを渡す必要があります。私はコードを実行しましたが、結果として 0 を取得し続けますか?? から関数までのデータを正しく渡しているとは思いませんか?

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>

<body>
<script>
function multiply(number1, number2, number3)
{
    var firstnum=0;
    var secondnum=0;
    var thirdnum=0;
    var answer;
    firstnum=parseInt(number1);
    secondnum=parseInt(number2);
    thirdnum==parseInt(number3);
    answer=(firstnum*secondnum*thirdnum);
    alert(answer)
}

</script>

<form name="Example1">
Number 1:
<select id="num1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br/>
Number 2:
<select id="num2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br/>
Number 2:
<select id="num3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br/>
<input type=button value="muliply" onclick="multiply(num1.value, num2.value, num3.value)" />
</form>
</body>
</html>
4

2 に答える 2

4

あなたの問題は次のとおりです。

thirdnum==parseInt(number3);は代入ではなく比較thirdnumであるため、常に になります0

を掛けているためthirdnum、× 0 は 0 であるため、出力として常に 0 が得られます。

に変更===ます。

コードをJS Hintで QA した場合、これは検出されたはずです。


修正する必要がある悪い習慣は次のとおりです。

  1. num1.valueID を持つすべての要素に対してグローバル JS 変数が作成されると仮定します。それを仮定しないで、使用してくださいdocument.getElementById
  2. parseInt(number1)基数はありません。使用している数値システム (通常は基数 10) を常に指定して、予期しない結果のためにデータから推測されないようにします。parseInt(number1, 10);
  3. <form name="Example1">フォームの name 属性は、id属性が適切に導入される前の遺産です。idクライアント側コードの要素を識別するために使用します。
  4. onclick属性は、懸念事項を分離するのに不十分です。addEventListener(古いバージョンの IE をサポートする必要がある場合は、YUI や jQuery などのライブラリ)を使用します。
于 2013-10-03T11:25:33.310 に答える
0

このため、結果として0を取得し続けます

thirdnum==parseInt(number3);

あなたのmultiply機能で

に変更します

thirdnum=parseInt(number3);

そして、あなたは行く準備ができているはずです

ここにデモがあります

于 2013-10-03T11:30:33.557 に答える