首页 > 解决方案 > 这是一个有效的 if 语句吗?

问题描述

我创建了捕获负数、0 或非数值的函数。由于某种原因,它只捕获非数值。我复制了下面的 HTML 和 JS 代码:

function validate() {
  var num = document.myform.num.value;
  if (isNaN(num) || num == 0 || num < 0) {
    document.getElementById("principal").innerHTML = "Enter Numeric value only";
    return false;
  } else {
    return true;
  }
}
<form name="myform" onsubmit="validate()">
  Amount
  <input type="number" name="num" id="principal">
  <span id="principal"></span><br/>
</form>

我已经测试了几次,我不确定它有什么问题。

标签: javascript

解决方案


使用 html 5,您可以在 input 元素上设置 min 属性。这将涵盖大于 0 的其他两个条件。如果您删除了函数,则可以使用标准 HTML 5 来检测这不是数字。

min="1"

完整代码:

<form name="myform">
  Amount
  <input type="number" name="num" id="principal" min="1">
  <span id="principal"></span><br/>
</form>


推荐阅读