javascript - 计算器未捕获的类型错误无法将属性“值”设置为空
问题描述
输入了一个建筑计算器,但由于某种原因,它没有在计算结束时识别对象。尝试移动函数以查看在尝试从函数中拉出时它是否被错误地排序,并且还删除了 Number5 和所有相关行,但出现的错误是 Number4 是问题,这让我相信这是关闭是问题。
function Calculate(n1, n2, n3, n4, n5, n6, n7) {
var total;
var buildRate
switch (n1) {
case "Double Brick":
buildRate = 1290 * n2;
break;
case "Brick Veneer":
buildRate = 1160 * n2;
break;
case "Weather Board":
buildRate = 950 * n2;
break;
case "Other":
buildRate = 900 * n2;
break;
default:
break;
}
total = buildRate + (n3 * 1) + (n4 * 1) + (n5 * 1) + (n6 * 1) + (n7 * 1);
return total;
}
<table>
<tr>
<td><label for="Construction">CONSTRUCTION TYPE:</label>
</td>
<td><select name="Construction" id="Construction">
<option value="Double Brick">Double Brick</option>
<option value="Brick Veneer">Brick Veneer</option>
<option value="Weather Board">Weather Board</option>
<option value="Other">Other</option>
</select></td>
</tr>
<tr>
<td>AREA OF HOME [SQ METRES]:
</td>
<td> <input type="number" name="Area" id="Area" /></td>
</tr>
<tr>
<td>GARAGE, DRIVEWAYS:
</td>
<td>$<input type="number" name="Number1" id="Number1" /></td>
</tr>
<tr>
<td>FENCES, GATES:
</td>
<td>$<input type="number" name="Number2" id="Number2" /></td>
</tr>
<tr>
<td>INGROUND SWIMMING POOL:
</td>
<td>$<input type="number" name="Number3" id="Number3" /></td>
</tr>
<tr>
<td>ARCHITECTS FEES, DEBRIS REMOVAL:
</td>
<td>$<input type="number" name="Number4" id="Number4" /></td>
</tr>
<tr>
<td>PERMANENT FIXTURES - SHEDS AIR CONDITIONING UNIS:
</td>
<td>$<input type="number" name="Number5" id="Number5" /></td>
</tr>
<tr>
<td>COST OF CONSTRUCTION: </td>
<td>$<input type="number" name="Cost"/></td>
</tr>
</table>
<input type="button" value="Calculate" onclick="document.getElementById('Cost').value =
Calculate(document.getElementById('Construction').value,
document.getElementById('Area').value,
document.getElementById('Number1').value,
document.getElementById('Number2').value,
document.getElementById('Number3').value,
document.getElementById('Number4').value,
document.getElementById('Number5').value)" />
<input type="reset" value=" Clear " onclick="location.reload();" />
解决方案
您忘记在成本输入中添加 id 也可以像我一样在 js 函数中获得价值
function Calculate() {
n1 = document.getElementById('Construction').value;
n2 = document.getElementById('Area').value;
n3 = document.getElementById('Number1').value;
n4 = document.getElementById('Number2').value;
n5 = document.getElementById('Number3').value;
n6 = document.getElementById('Number4').value;
n7 = document.getElementById('Number5').value;
var total;
var buildRate
switch (n1) {
case "Double Brick":
buildRate = 1290 * n2;
break;
case "Brick Veneer":
buildRate = 1160 * n2;
break;
case "Weather Board":
buildRate = 950 * n2;
break;
case "Other":
buildRate = 900 * n2;
break;
default:
break;
}
total = buildRate + (n3 * 1) + (n4 * 1) + (n5 * 1) + (n6 * 1) + (n7 * 1);
return total;
}
<table>
<tr>
<td><label for="Construction">CONSTRUCTION TYPE:</label>
</td>
<td>
<select name="Construction" id="Construction">
<option value="Double Brick">Double Brick</option>
<option value="Brick Veneer">Brick Veneer</option>
<option value="Weather Board">Weather Board</option>
<option value="Other">Other</option>
</select>
</td>
</tr>
<tr>
<td>AREA OF HOME [SQ METRES]:
</td>
<td> <input type="number" name="Area" id="Area" /></td>
</tr>
<tr>
<td>GARAGE, DRIVEWAYS:
</td>
<td>$<input type="number" name="Number1" id="Number1" /></td>
</tr>
<tr>
<td>FENCES, GATES:
</td>
<td>$<input type="number" name="Number2" id="Number2" /></td>
</tr>
<tr>
<td>INGROUND SWIMMING POOL:
</td>
<td>$<input type="number" name="Number3" id="Number3" /></td>
</tr>
<tr>
<td>ARCHITECTS FEES, DEBRIS REMOVAL:
</td>
<td>$<input type="number" name="Number4" id="Number4" /></td>
</tr>
<tr>
<td>PERMANENT FIXTURES - SHEDS AIR CONDITIONING UNIS:
</td>
<td>$<input type="number" name="Number5" id="Number5" /></td>
</tr>
<tr>
<td>COST OF CONSTRUCTION: </td>
<td>$<input type="number" name="Cost" id="Cost" /></td>
</tr>
</table>
<input type="button" value="Calculate" onclick="document.getElementById('Cost').value = Calculate() " />
<input type="reset" value=" Clear " onclick="location.reload();" />
推荐阅读
- kql - 如何使用 kusto 在数据集中查找缺失纬度、经度到下一个可用纬度、经度之间的差距
- javascript - 如何提及多个角色 [DISCORD.JS]
- python - 如何获得包含在多边形内的最大可能矩形
- log4j - 使用 log4j.properties 和 log4j2 在某些天后删除日志
- reactjs - Reactjs客户端向服务端发送图片时存储图片的解决方案
- node.js - YARN 构建 ia32 依赖项
- google-cloud-platform - 每天从 Big query 加载数据到 Postgre 云 sql 数据库
- python - 如何在 Python 中编写一个 for 循环来重复要求用户输入一个数字,直到他们输入一个整数(0、1、2 等)?
- javascript - 如何使用 React 在网站上显示固定的代码片段
- python - 熊猫指数移动平均线 (EMA)