Javascript中if语句中的大于和小于

Javascript中if语句中的大于和小于,javascript,validation,if-statement,return,Javascript,Validation,If Statement,Return,我需要帮助。使用大于和小于验证消息不起作用。 对于某些药物,我有3乘以3的条件,我想验证一下。三倍多,三倍丽都,三倍凯恩 每当我运行整个代码时,验证消息都不会被替换。因此,“更多”的第一条验证消息仍然存在,但只有“过高和过低”消息,然后是Lido和凯恩错误消息。 当使用大于和小于时,我尝试用“Test”消息替换这些消息,但没有效果。有人能帮忙吗?我试图用真消息替换假验证消息,或者至少继续下一个假验证消息,但我不想全部显示它们 if (more > 0.4) { error.i

我需要帮助。使用大于和小于验证消息不起作用。 对于某些药物,我有3乘以3的条件,我想验证一下。三倍多,三倍丽都,三倍凯恩

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

   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(更多>0.4){
error.innerHTML=“更多信息太高
按“全部清除”,然后重新开始” moreDose.value=“” 返回false; } 如果(更多<0.2){ error.innerHTML=“更多值过低
按“全部清除”并重新开始” moreDose.value=“” 返回false; } 如果(更多>0.2&&更多<0.4){ error.innerHTML=“测试” 返回true; } 如果(丽都湾>3){ error2.innerHTML=“Lido过高
按“全部清除”并重新开始” lidoDose.value=“” 返回false; } 如果(利多卡因<0.6){ error2.innerHTML=“Lido过低
按“全部清除”并重新开始” lidoDose.value=“” 返回false; } 如果(利多卡因<0.6&&利多卡因>3){ error2.innerHTML=“测试2” 返回true; } 如果(凯恩>1.2){ error3.innerHTML=“凯恩过高
按“全部清除”,然后重新开始” ketaDose.value=“” 返回false; } 如果(凯恩<0.12){ error3.innerHTML=“凯恩过低
按“全部清除”并重新开始” ketaDose.value=“” 返回false; } 如果(凯恩<0.12&&凯恩>1.2){ error3.innerHTML=“测试3” 返回true; }
您不应该在每个
if
块中返回,因为当任何早期测试成功时,它将永远不会执行最后一个测试

在拆卸中,使用
if/else if/else
检查互斥条件。这也将解决您忽略输入正好等于范围边界之一的情况的问题

var moreDose=document.getElementById(“更多”);
var lidoDose=document.getElementById(“lido”);
var ketaDose=document.getElementById(“凯恩”);
var error=document.getElementById(“错误”);
var error2=document.getElementById(“error2”);
var error3=document.getElementById(“error3”);
功能验证(更多、丽都、凯恩){
如果(更多>0.4){
error.innerHTML=“更多信息太高
按“全部清除”,然后重新开始” moreDose.value=“” }否则如果(大于0.2){ error.innerHTML=“更多值过低
按“全部清除”并重新开始” moreDose.value=“” }否则{ error.innerHTML=“测试” } 如果(丽都湾>3){ error2.innerHTML=“Lido过高
按“全部清除”并重新开始” lidoDose.value=“” }否则,如果(利多卡因<0.6){ error2.innerHTML=“Lido过低
按“全部清除”并重新开始” lidoDose.value=“” }否则{ error2.innerHTML=“测试2” } 如果(凯恩>1.2){ error3.innerHTML=“凯恩过高
按“全部清除”,然后重新开始” ketaDose.value=“” }否则如果(凯恩<0.12){ error3.innerHTML=“凯恩过低
按“全部清除”并重新开始” ketaDose.value=“” }否则{ error3.innerHTML=“测试3” } } document.getElementById(“验证”).addEventListener(“单击”,函数)(){ 验证(解析浮点值(moreDose.value), parseFloat(lidoDose.value), parseFloat(ketaDose.value)); });
更多:
丽都:
凯恩:

首先,所有的
&&
条件在逻辑上都是不可能的。你有没有把这些符号倒过来?谢谢你指出这一点,但即使像我刚才那样纠正了,我也有同样的问题。有一个有效的结果需要什么条件?我们可以从这里开始。如果(more>0.2&&more<0.4){error.innerHTML=“Test”return true;}和如果(lido>0.6&&lido<3){error2.innerHTML=“Test 2”return true;}和如果(kane>0.12&&kane<1.2){error3.innerHTML=“Test 3”return true;},下面是正确的结果但我需要先检查一下其他条件。问题是,即使给出了正确的输入,错误消息也会被打印出来。如果
more
恰好是
0.2
0.4
,则无法处理这种情况。您只检查大于和小于,但不检查
=
。感谢您的慷慨帮助。明天我需要处理你的代码,因为它内置在另一个函数中,我遇到了一些小问题。