我的javascript函数出现错误,不确定我';I’我计算stv方程是错误的
所有这些假设要做的是检查3个框中的值,例如,如果'v'或's'不为空,它将计算't',问题是它将计算's',无论我填充哪个框,它首先检查您是否已填充所有文本框(您应该只填充两个),如果'v'或's'不为空,它将检查下一个'if'是否为空?它似乎随机选择“如果”,有时还返回NaN作为答案 谢谢我的javascript函数出现错误,不确定我';I’我计算stv方程是错误的,javascript,equation,Javascript,Equation,所有这些假设要做的是检查3个框中的值,例如,如果'v'或's'不为空,它将计算't',问题是它将计算's',无论我填充哪个框,它首先检查您是否已填充所有文本框(您应该只填充两个),如果'v'或's'不为空,它将检查下一个'if'是否为空?它似乎随机选择“如果”,有时还返回NaN作为答案 谢谢 var count = 0; function stv() { var v = parseFloat(document.getElementById("Text1").value); var
var count = 0;
function stv()
{
var v = parseFloat(document.getElementById("Text1").value);
var s = parseFloat(document.getElementById("Text2").value);
var t = parseFloat(document.getElementById("Text3").value);
if (v != "" && t != "" && s != "") {
"Don't be stupid..."
count++
}
if (v!="" && s!=""){
document.getElementById("result").innerHTML = "time= " + s / v + "hours, or " + (s / v) * 60 + "minutes";
count++;
}
if (s != "" && t != "") {
document.getElementById("result").innerHTML = "velocity= " + s / t + "kph";
count++;
}
if (v != "" && t != "") {
document.getElementById("result").innerHTML = "displacement= " + (v * t) + "kilometers";
count++;
}
if (count == 0){
document.getElementById("result").innerHTML = "Fill in at least two parameters...";
}
count = 0;
document.getElementById("Text1").value = "";
document.getElementById("Text2").value = "";
document.getElementById("Text3").value = "";
}
您的if检查“失败”,因为“”的parseFloat为NaN且不等于“”。因此,您应该检查它是否不是一个数字,也不等于一个空字符串
var a=parseFloat(“”)
if(isNaN(a))console.log(“我不是一个数字”);
如果(a!=“”)console.log(“我不是空字符串”)代码>将转换为数字的值与空字符串进行比较。在调用parseFloat
之前,您应该比较输入的值。添加到上述注释中,即使在第一个if之后,您的另一个if也将执行,以检查是否所有3个都已填写。使用elseif
可以解决这个问题。只需使用if(v&s)
等等@ChrisG0
不是有效的number@epascarello事实并非如此,因为除以0是未定义的,计算速度或时间为0的速度毫无意义。