如何在输入数字类型中仅允许正数
<input> 标签为用户指定一个数据输入字段。它是最重要的表单元素,用于设计用于收集用户数据的在线表单的交互式控件。根据 type 属性,它可以以多种方式显示。由于输入类型和属性组合的数量众多,它是 HTML 中最强大、最复杂的工具之一。
<input> 类型
type 属性指示将显示的 <input> 元素的类型。如果未指定 type 属性,则默认类型为"text"。语法如下所示。
<input type="value">
其他输入类型包括按钮、提交、图像、密码、日期、数字、时间等。
其他属性:由于其属性,<input> 元素非常强大,其中 type 属性是最重要的。由于每个 <input> 元素(无论类型如何)都实现了 HTMLInputElement 接口,因此它们都具有相同的属性集。但是,大多数属性仅对部分输入类型有影响。此外,某些属性影响输入的方式取决于输入类型,不同的输入类型会受到不同的影响。
以下是输入类型及其属性组合的几个示例:
输入的 height 和 width 属性定义 <input type="image"> 的高度和宽度。元素。
<input type="image" src="demo.png" height="45" width="35" >
输入字段的合法数字间隔由输入的 step 属性指定。例如,step=3,数字模式为 0、3、6、9…
<input type="number" name="multiplesof3" step="3">
输入的 size 属性定义输入字段的可见宽度(以字符为单位)。size 参数默认设置为 20。文本、搜索、电话、网址、电子邮件和密码等输入类型与 size 属性兼容。
<input type="text" size="14">
数字输入类型
数字输入类型创建一个用于输入数值的输入字段。默认情况下,它允许用户手动输入正负值,或者通过输入区域右侧的上下箭头输入。
以下属性可以帮助我们对输入的数字类型进行限制。
max - 指定可以输入的最大值
min - 指定可以输入的最小值
step - 指定合法的间隔数
value - 指定默认值
众所周知,<input type="number"> 指定用于输入数字的字段。为了限制输入字段仅接受正数,我们可以使用以下方法。
使用 HTML 输入框的"min"属性
它指定允许值范围内的最小负值。如果输入到元素中的值小于此值,则约束验证失败。如果 min 属性值不是数字,则元素没有最小值。该值必须小于或等于 maximum 属性值。如果"min"值设置为零,则只允许输入正数。
示例
以下示例描述了如何使用"min"属性在输入字段中仅允许输入正数。
<!DOCTYPE html>
<html>
<head>
<title>How to Allow Only Positive Numbers in the Input Number Type</title>
</head>
<body>
<input type="number" min="0" value="5">
</body>
</html>
上面的示例仅通过上下箭头限制负数,但负数仍然可以手动输入,因此这并不能完全解决我们的问题。
使用 JavaScript
为了防止输入负数,我们必须添加 onkeypress 属性并运用一些 JavaScript。当用户按下一个会生成字符值的键时,就会触发此事件。这些键包括标点符号、数字和字母键。触发 onkeypress 事件的键的 Unicode 字符代码由 charCode 属性返回。这非常轻量,因为它可以直接放置在 HTML 中。当按下一个键时,JavaScript 会判断该键是数字还是正数。
示例
以下代码展示了如何通过添加 onkeypress 属性来通过 charCode 属性限制负数。
<!DOCTYPE html>
<html>
<head>
<title>How to Allow Only Positive Numbers in the Input Number Type</title>
</head>
<body>
<input type="number" min="0" onkeypress="return (event.charCode !=8 && event.charCode ==0 || (event.charCode >= 48 && event.charCode <= 57))">
</body>
</html>
使用"oninput"属性
此方法通过箭头限制负数,并阻止手动输入,从而彻底解决了这个问题。
"onkeypress"属性的替代方案是"oninput"属性。当用户输入值 (oninput) 时,该值要么有效 (validity.valid),要么被替换为空字符串 (value=")。
示例
以下代码使用 oninput 属性来限制负值。
<!DOCTYPE html>
<html>
<head>
<title>How to Allow Only Positive Numbers in the Input Number Type</title>
</head>
<body>
<input type="number" min="0" oninput="validity.valid||(value='');">
</body>
</html>
总而言之,使用'min'属性和'onkeypress'/'oninput'属性加上一点 JavaScript 就可以允许输入字段中只输入正数。
相关文章
有用资源
html 参考教程 - 该教程包含有关 html 的更多信息:https://www.cainiaomax.com/html/

