我的 javascript 函数出错,不确定我在计算 stv 方程时做错了什么

An error with my javascript function, not sure what I'm doing wrong to calculate an stv equation

所有这些假设要做的是检查 3 个框的值,例如,如果 'v' 或 's' 不为空,它将计算 't',问题是它计算 's' 无论我填写哪个框,它都会首先检查您是否已填写所有文本框(您应该只填写两个)如果 'v' 或 's' 不为空,它将检查下一个 'if' 不会吧?它似乎随机选择 'ifs' 并且在某些情况下 return NaN 作为答案。

先谢谢了。

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 检查是 "failing" 因为“”的 parseFloat 是 NaN 且不等于“”。所以你应该检查它是否不是一个数字并且不等于一个空字符串。

    var a = parseFloat("")
    if ( isNaN(a) ) console.log("I am not a number");    
    if ( a!="" ) console.log("I am not an empty string");