javascript - 这是一个有效的 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>
我已经测试了几次,我不确定它有什么问题。
解决方案
使用 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>
推荐阅读
- node.js - 通过nodejs express创建我的服务器时遇到困难
- storage - AnyLogic:从存储架的同一个单元中挑选多个产品
- oracle - 从 11G 导入备份时 Oracle EDITIONABLE 属性错误
- amazon-web-services - 允许从不同的 AWS 账户访问 QuickSight 模板
- ruby-on-rails - 我该如何解决这个“无法加载这样的文件——/home/max/app_project/app/controllers/registrations_controller.rb”
- cassandra - 使用 GOLANG Driver 从 cassandra 获取数百万个设备信息
- ios - RxDataSources 单元格重新加载动画无法正常工作
- python-3.x - 用中位数填充熊猫数据框中的第一个日期到最后一个日期的行
- html - 获取显示:内联响应式
- reactjs - React Hooks - 输入 1 个字符时输入失去焦点