2013-10-03 108 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