[英]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.