我的 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");
所有这些假设要做的是检查 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");