[英]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對代碼進行了質量檢查,則可以選擇該格式。
您應糾正的不良做法是:
num1.value
假定將為每個具有id的元素創建全局JS變量。 不要以為是,使用document.getElementById
parseInt(number1)
沒有基數。 始終指定您使用的數字系統(通常以10為基數),這樣就不會從數據中推斷出意外的結果: parseInt(number1, 10);
<form name="Example1">
,表單上的name屬性是id
屬性正確出現之前的遺留物。 使用id
標識客戶端代碼的元素。 onclick
屬性在分離關注點方面做得很差。 使用addEventListener
(如果需要支持IE的舊版本,請使用YUI或jQuery之類的庫)。 好的,因為這個原因,您一直得到0
thirdnum==parseInt(number3);
在你的multiply
函數中
更改為
thirdnum=parseInt(number3);
而且你應該很好走
這是一個演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.