javascript - 使用 variable.length 测试值是否为空
问题描述
我在编写问题以计算给定 3 个边的三角形面积时遇到问题,当输入为空时,我希望我的 if 发出警报并且我的变量假定给定值,但似乎我的程序只是忽略了 if:
function calcular(){
var lado1 = window.document.getElementById('lado1')
var lado2 = window.document.getElementById('lado2')
var lado3 = window.document.getElementById('lado3')
var l1 = Number(lado1.value)
var l2 = Number(lado2.value)
var l3 = Number(lado3.value)
if (lado1.length === 0 && lado2.length === 0 && lado3.length === 0) {
window.alert("Um ou mais campos vazios, considerando valores 5, 6 e 7.")
l1 = 5
l2 = 6
l3 = 7
}
var semp = (l1 + l2 + l3)/2
var area = Math.sqrt(semp*((semp-l1)*(semp-l2)*(semp-l3)))
answer.innerHTML = `A área do triângulo dado é de <strong>${area}</strong>!`
}
当我在输入上给出任何值时,它工作正常。任何人都可以看到问题吗?
解决方案
您的第一个问题似乎是您使用的是 AND 运算符 ( &&
) 而不是 OR 运算符 ( ||
),因此它只会在al值为空时发出警报。
您的第二个问题是您似乎正在阅读.length
DOM 元素本身,而不是值。
您可能想改用它:
if (lado1.value.length === 0 || lado2.value.length === 0 || lado3.value.length === 0) {
window.alert("Um ou mais campos vazios, considerando valores 5, 6 e 7.")
// ...
}
或简而言之:
if (!lado1.value || !lado2.value || !lado3.value) {
window.alert("Um ou mais campos vazios, considerando valores 5, 6 e 7.")
// ...
}
尽管您可能还想检查输入是否是有效数字。
推荐阅读
- java - HTTP 响应 414
- reactjs - 从 React WebExtension 访问 Cookies API
- excel - 将 Excel 函数结果分配给单元格内的变量
- html - 服务器迁移后 CSS 未链接
- javascript - d3.js 在鼠标悬停时选择连接的节点
- google-sheets - 使用脚本添加 ='Sheet1!'D3 公式,该公式具有在脚本中提取的工作表名称
- sql - VBA ADO SQL 参数太少
- mysql - 从 InnoDB 表中删除并重用第一个自动增量 ID
- c++ - OpenCV findContours,如何检查两边的颜色
- ruby - 在内存中预加载 minitest 以提高速度