1
假設'v'或's'不是空的,例如,它會計算't',問題是計算's',無論我填寫哪個框,如果'v'或's'爲空,它會首先檢查是否填滿了所有文本框(應填寫兩個)不是空的,它會檢查下一個'如果'不是嗎?它似乎隨機選擇'ifs',並在某些場合返回NaN作爲答案。我的javascript函數出錯,不知道我在做什麼錯誤來計算stv等式
提前感謝。
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 = "";
}
你跟一個空字符串比較轉換到數字值。您應該在調用'parseFloat'之前比較輸入的值。 –
添加到上面的評論,你的其他if將會執行,即使在你的第一個,如果檢查是否所有3填寫。使用'else if'將爲您解決。 –
只需使用if(v && s)'等等。 https://jsfiddle.net/khrismuc/96mffgg4/ –