数字输入框
Input Number
UI 组件也叫:数字框、步进器、计数器、InputNumber、Stepper
一句话:只能输入数字的输入框,带加减按钮,可以限制最小值、最大值和每次加减的步长。
详细解释
数字输入框专门用来填数量、年龄、价格、百分比这类数值。它会拦下非数字字符,带「−」「+」按钮或右侧上下小箭头,每点一次按设定的步长加减,到达最小值或最大值时对应按钮变成禁用。还可以设置小数位数,以及在前后显示单位,比如「¥」「%」「件」。
它和普通 输入框 的区别是有数值约束和加减操作;和 滑块 的区别是能精确填写具体数字,滑块更适合拖动粗调。注意手机号、身份证号、验证码虽然全是数字,但不做加减运算,开头的 0 也不能丢,应该用普通输入框。
示例
灰度线框示意,只表达结构,不代表具体视觉风格。
怎么跟 AI 说
可以直接贴给 Cursor、Claude Code 等工具,把里面的业务内容换成你自己的。
购物车里每件商品的购买数量用数字输入框,左边「−」、右边「+」,中间可以直接输入。最小值 1、最大值为库存数,步长 1,到达上下限时对应按钮变灰禁用;输入超出范围或非数字时,失去焦点后自动改回最近的合法值。
结构与适用场景
结构描述
由中间的数字输入区和两侧(或右侧上下排列)的加减按钮组成,可以带单位前后缀。
适用场景
- 填写购买数量、人数、天数这类需要小幅加减的整数
- 有明确最小值、最大值或步长要求的数值,比如 0~100 的折扣百分比
- 金额、重量这类需要精确到固定小数位的数值
不适用场景
- 手机号、身份证号、验证码这类由数字组成但不做计算的编号,应该用普通输入框
- 只需要粗略调节、不在乎精确数值的设置,比如音量、亮度,应该用滑块
- 可选值只有少数几个固定档位时,应该用单选框或下拉选择
常见坏用法
- 手机号、银行卡号也做成带加减按钮的数字框,开头的 0 还会被吞掉
- 没有设最小值,购买数量能被减到 0 甚至负数
- 加减按钮太小,手机上很难点中
识别特征
- 输入框两侧有「−」「+」按钮,或右侧有上下两个小箭头
- 框内是居中或右对齐的数字
- 到达上限或下限时,一侧的按钮变灰
DOM 线索
插件本地识别时匹配的 CSS 选择器(标签、ARIA role、常见组件库 class)。
input[type="number"]input[role="spinbutton"].ant-input-number.el-input-number.arco-input-number.t-input-number.n-input-number