大于和小于Javascript中的if语句



我需要帮助。使用大于和小于验证消息无效。我对某些药物有3乘3的条件,我想验证一下。三次"more",三次"lido"和三次"kane"。

每当我运行整个代码时,验证消息都不会被替换。因此,"更多"的第一条验证消息仍然存在,但只有"过高和过低"消息,然后是Lido,然后是Kane错误消息。当使用大于和小于时,我试图用"测试"消息替换这些,但没有成功。有人能帮忙吗?我正试图用真消息替换错误的验证消息,或者至少继续使用下一个错误验证消息,但我不想全部显示它们。

if (more > 0.4) {
error.innerHTML = "More is too high<br>Press 'Clear All' and start again"
moreDose.value = "" 
return false;

} 
if (more < 0.2) {
error.innerHTML = "More is too low<br>Press 'Clear All' and start again"
moreDose.value = ""  
return false;     
}
if (more > 0.2 && more < 0.4) {
error.innerHTML = "Test"
return true;
}
if (lido > 3) {
error2.innerHTML = "Lido is too high<br>Press 'Clear All' and start again"
lidoDose.value = ""  
return false;     
}
if (lido < 0.6) {
error2.innerHTML = "Lido is too low<br>Press 'Clear All' and start again"
lidoDose.value = ""
return false;
}
if (lido < 0.6 && lido > 3) {
error2.innerHTML = "Test 2"
return true;
}

if (kane > 1.2) {
error3.innerHTML = "Kane is too high<br>Press 'Clear All' and start again"
ketaDose.value = ""  
return false; 
}
if (kane < 0.12) {
error3.innerHTML = "Kane is too low<br>Press 'Clear All' and start again"
ketaDose.value = ""
return false;
}
if (kane < 0.12 && kane> 1.2) {
error3.innerHTML = "Test 3"
return true;
}

您不应该在每个if块中返回,因为当任何早期测试成功时,它将永远不会执行最后的测试。

插入时,使用if/else if/else检查互斥条件。这也将解决您忽略输入恰好等于某个范围边界的情况的问题。

var moreDose = document.getElementById("more");
var lidoDose = document.getElementById("lido");
var ketaDose = document.getElementById("kane");
var error = document.getElementById("error");
var error2 = document.getElementById("error2");
var error3 = document.getElementById("error3");
function validate(more, lido, kane) {
if (more > 0.4) {
error.innerHTML = "More is too high<br>Press 'Clear All' and start again"
moreDose.value = ""
} else if (more < 0.2) {
error.innerHTML = "More is too low<br>Press 'Clear All' and start again"
moreDose.value = ""
} else {
error.innerHTML = "Test"
}
if (lido > 3) {
error2.innerHTML = "Lido is too high<br>Press 'Clear All' and start again"
lidoDose.value = ""
} else if (lido < 0.6) {
error2.innerHTML = "Lido is too low<br>Press 'Clear All' and start again"
lidoDose.value = ""
} else {
error2.innerHTML = "Test 2"
}

if (kane > 1.2) {
error3.innerHTML = "Kane is too high<br>Press 'Clear All' and start again"
ketaDose.value = ""
} else if (kane < 0.12) {
error3.innerHTML = "Kane is too low<br>Press 'Clear All' and start again"
ketaDose.value = ""
} else {
error3.innerHTML = "Test 3"
}
}
document.getElementById("validate").addEventListener("click", function() {
validate(parseFloat(moreDose.value),
parseFloat(lidoDose.value),
parseFloat(ketaDose.value));
});
More: <input id="more" type="number"><br> Lido: <input id="lido" type="number"><br> Kane: <input id="kane" type="number"><br>
<input id="validate" value="Validate">
<div id="error"></div>
<div id="error2"></div>
<div id="error3"></div>

最新更新