如果总数=x,则Javascript显示消息

如果总数=x,则Javascript显示消息,javascript,Javascript,这里是HTML/Java noobie,请耐心听我说。我在一个页面上有多个数量选择器,然后是一个获取所有值总和的javascript <label for="quantity">Option 1: </label> <input class="product-selector-field" onblur="findTotal()" min="0" type="number" id="quantity1" name="quantity" value="0" />

这里是HTML/Java noobie,请耐心听我说。我在一个页面上有多个数量选择器,然后是一个获取所有值总和的javascript

<label for="quantity">Option 1: </label>
<input class="product-selector-field" onblur="findTotal()" min="0" type="number" id="quantity1" name="quantity" value="0" />
<br><br>      

<label for="quantity">Option 2: </label>
<input class="product-selector-field" onblur="findTotal()" min="0" type="number" id="quantity2" name="quantity" value="0" />
<br><br>

Total Selected : <input type="text" name="total" id="total" readonly = true/>

<script type="text/javascript">
function findTotal(){
  var arr = document.getElementsByName('quantity');
  var tot=0;

  for(var i=0;i<arr.length;i++){
    if(parseInt(arr[i].value))
      tot += parseInt(arr[i].value);
  }
  document.getElementById('total').value = tot;
}
</script>       
有人知道我可能做错了什么吗

  • 您应该使用
    oninput
    而不是
    onblur
    ,这样更好
  • 您应该使用
    isNaN
    检查值是否为有效数字。(请记住,如果(0)为
    false
    ),则
    0
    将被排除在外,即使它们是有效数字)
  • 错误消息应该初始隐藏(在开始时隐藏类
    )。当然,这取决于你需要什么,我的意见是它应该隐藏起来
  • DOM元素没有像
    .removeClass
    .addClass
    这样的函数(这些是jQuery的)。使用
    .classList。添加
    .classList。删除
    .className=
    #错误消息{
    颜色:红色;
    }
    .隐藏{
    显示:无;
    }
    选项1:
    

    备选案文2:

    所选总数: 错误 函数findTotal(){ var arr=document.getElementsByName(“数量”); var-tot=0; 对于(变量i=0;i
    If
    应该是
    If
    (小写i),并且DOM节点没有
    .removeClass()方法。它应该是
    .classList.remove(“hide”)
    。还有
    document.getElementByID.addClass
    根本不是一个合理的代码。第1课:JavaScript与Java无关。看看浏览器的错误控制台,看看它是否告诉了你什么。
    document.getElementByID('errorMessage').classList.toggle(“hide”,tot==15)
    这还是比较简单的。@squint谢谢,那很有效!
    <span id="errorMessage">Error</span>
    
    If (tot!=15) {
      document.getElementById('errorMessage').removeClass("hide")
    } else {    
      document.getElementByID.addClass
    }
    
      .hide {
            display: none !important;
      }