我正在尝试使用我提出的示例来构建概念验证,以展示我们如何通过构建计算器在JavaScript
中实现Sharepoint
。
一切似乎都很好,但我正在努力弄清楚为什么一切都是未确定的或NaN
。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<SCRIPT LANGUAGE="JavaScript">
function calc (form) {
var multipliers = [ 0.5, 0.25, 0.10, 0.05, 100, 50 ];
var bonus;
var imyindex = form.level.value-1;
if (form.level.value < 5)
{
bonus = (((form.salary.value * multipliers[imyindex]) * form.profit.value) * form.growth.value);
}
else bonus = multipliers[imyindex];
alert (multipliers[imyindex]);
alert (imyindex);
alert ("Your bonus is " + bonus);
}
</script>
</head>
<body>
<table width="161" border="-1">
<tr>
<td width="85%"><form id="form" name="form" method="get" action="">
<p>
<label for="level">Level: </label>
<select name="level" id="level">
<option value=”1”>A</option>
<option value=”2”>B</option>
<option value=”3”>C</option>
<option value=”4”>D</option>
<option value=”5”>E</option>
<option value=”6”>F</option>
</select>
</p>
<p>
<label for="salary">Salary: </label>
<input type="text" name="salary" id="salary" />
</p>
<p>
<label for="salary">Profit: </label>
<input name="profit" type="text" id="profit" value=".25" />
</p>
<p>
<label for="salary">Growth: </label>
<input name="growth" type="text" id="growth" value=".75" />
</p>
<p>
<center>
<INPUT TYPE="button" NAME="button" Value="Calculate" onClick="calc(this.form)"/>
</p>
</form></td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:4)
您的<option>
值附近有明智的引号。这导致该值为”1”
,而不仅仅是1
,这会使您的计算失败。
答案 1 :(得分:0)
您使用的报价类型错误。也许你正在使用另一个文本编辑器,它引入了引号:”
。
此引号会将选定的值设为”1”
而不是1
,因此会错误地将其标记为文字,从而导致var imyindex = form.level.value-1;
等于NaN
将引号替换为加倍"
或单'
引号,您的问题应该得到解决。
答案 2 :(得分:0)
以下是工作代码:您无法在单击时将表单作为对象发送到该函数,该选项不应具有字符串值,或者您可以使用parseInt将它们转换为整数
otherwise the working example is here live just use :)
答案 3 :(得分:0)
我是名为Appizy的软件开发人员,可以在创建计算器时避免头痛。基本上它将OpenDocument电子表格转换为HTML + CSS + JS ..
您只需在OpenOffice或LibreOffice上创建计算器即可。然后Appizy立即将其变成一个独立的网络应用程序。
我希望它可以帮助您解决问题!
最佳, 尼古拉斯