2013-10-03 152 views
0

已經創建了一個基本表單,三個下拉列表和一個按鈕。即時通訊嘗試將下拉列表中的三個值相乘。我必須將數據傳遞給函數。我已經跑了代碼只是不斷得到0作爲結果?我不認爲我正確地將數據從功能傳遞給功能?javascript函數參數

<!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> 
+0

請嘗試檢查句法是否正確... @ Francis Gall –

回答

4

您的問題是:

thirdnum==parseInt(number3);比較,而不是分配,因此thirdnum永遠是0

由於您乘以thirdnum,並且任何×0都爲0,您將始終得到0作爲輸出。

==更改爲=

如果您已使用JS Hint對您的代碼進行了質量檢查,就會發現此問題。


你,你應該解決不良做法是:

  1. num1.value假定全球JS變量將用一個id每個元素創建。不要假設,使用document.getElementById
  2. parseInt(number1)沒有基數。始終指定您正在使用的數字系統(通常以10爲底),因此不會從數據中推斷出意外的結果:parseInt(number1, 10);
  3. <form name="Example1">,表單上的名稱屬性是id屬性恰當出現之前的遺留物。使用id來識別客戶端代碼的元素。
  4. onclick屬性做得不好。使用addEventListener(或者如果您需要支持舊版本的IE,請使用YUI或jQuery等庫)。
0

OKü不斷得到0的結果,因爲這

thirdnum==parseInt(number3); 
multiply功能

變化它

thirdnum=parseInt(number3); 

,你應該是好去

這裏是demo