簡體   English   中英

javascript函數參數

[英]javascript functions arguments

創建了一個基本表單,三個下拉列表和一個按鈕。 我會嘗試將下拉列表中的三個值相乘。 我必須將數據傳遞給函數。 我已經運行了代碼,只是保持結果為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>

您的問題是:

thirdnum==parseInt(number3); 是一個比較 ,而不是賦值,因此thirdnum始終為0

由於您要乘以thirdnum ,並且任何×0都為0,因此輸出總為0。

==更改為=

如果您使用JS Hint對代碼進行了質量檢查,則可以選擇該格式。


您應糾正的不良做法是:

  1. num1.value假定將為每個具有id的元素創建全局JS變量。 不要以為是,使用document.getElementById
  2. parseInt(number1)沒有基數。 始終指定您使用的數字系統(通常以10為基數),這樣就不會從數據中推斷出意外的結果: parseInt(number1, 10);
  3. <form name="Example1"> ,表單上的name屬性是id屬性正確出現之前的遺留物。 使用id標識客戶端代碼的元素。
  4. onclick屬性在分離關注點方面做得很差。 使用addEventListener (如果需要支持IE的舊版本,請使用YUI或jQuery之類的庫)。

好的,因為這個原因,您一直得到0

thirdnum==parseInt(number3);

在你的multiply函數中

更改為

thirdnum=parseInt(number3);

而且你應該很好走

這是一個演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM