logoAnt Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
  • 国内镜像
5.20.6
  • 组件总览
  • 通用
    • Button
      按钮
    • FloatButton
      悬浮按钮
      5.0.0
    • Icon
      图标
    • Typography
      排版
  • 布局
    • Divider
      分割线
    • Flex
      弹性布局
      5.10.0
    • Grid
      栅格
    • Layout
      布局
    • Space
      间距
  • 导航
    • Anchor
      锚点
    • Breadcrumb
      面包屑
    • Dropdown
      下拉菜单
    • Menu
      导航菜单
    • Pagination
      分页
    • Steps
      步骤条
  • 数据录入
    • AutoComplete
      自动完成
    • Cascader
      级联选择
    • Checkbox
      多选框
    • ColorPicker
      颜色选择器
      5.5.0
    • DatePicker
      日期选择框
    • Form
      表单
    • Input
      输入框
    • InputNumber
      数字输入框
    • Mentions
      提及
    • Radio
      单选框
    • Rate
      评分
    • Select
      选择器
    • Slider
      滑动输入条
    • Switch
      开关
    • TimePicker
      时间选择框
    • Transfer
      穿梭框
    • TreeSelect
      树选择
    • Upload
      上传
  • 数据展示
    • Avatar
      头像
    • Badge
      徽标数
    • Calendar
      日历
    • Card
      卡片
    • Carousel
      走马灯
    • Collapse
      折叠面板
    • Descriptions
      描述列表
    • Empty
      空状态
    • Image
      图片
    • List
      列表
    • Popover
      气泡卡片
    • QRCode
      二维码
      5.1.0
    • Segmented
      分段控制器
    • Statistic
      统计数值
    • Table
      表格
    • Tabs
      标签页
    • Tag
      标签
    • Timeline
      时间轴
    • Tooltip
      文字提示
    • Tour
      漫游式引导
      5.0.0
    • Tree
      树形控件
  • 反馈
    • Alert
      警告提示
    • Drawer
      抽屉
    • Message
      全局提示
    • Modal
      对话框
    • Notification
      通知提醒框
    • Popconfirm
      气泡确认框
    • Progress
      进度条
    • Result
      结果
    • Skeleton
      骨架屏
    • Spin
      加载中
    • Watermark
      水印
      5.1.0
  • 其他
    • Affix
      固钉
    • App
      包裹组件
      5.1.0
    • ConfigProvider
      全局化配置
    • Util
      工具类
      5.13.0

InputNumber
数字输入框

通过鼠标或键盘,输入范围内的数值。
使用import{ InputNumber }from"antd";
源码components/input-number
文档编辑此页

相关资源

Ant Design Charts
Ant Design Pro
Ant Design Pro Components
Ant Design Mobile
Ant Design Mini
Ant Design Landing-首页模板集
Scaffolds-脚手架市场
Umi-React 应用开发框架
dumi-组件/文档研发工具
qiankun-微前端框架
ahooks-React Hooks 库
Ant Motion-设计动效
国内镜像站点 🇨🇳

社区

Awesome Ant Design
Medium
Twitter
yuque logoAnt Design 语雀专栏
Ant Design 知乎专栏
体验科技专栏
seeconf logoSEE Conf-蚂蚁体验科技大会
加入我们

帮助

GitHub
更新日志
常见问题
报告 Bug
议题
讨论区
StackOverflow
SegmentFault

Ant XTech logo更多产品

yuque logo语雀-构建你的数字花园
AntV logoAntV-数据可视化解决方案
Egg logoEgg-企业级 Node.js 框架
Kitchen logoKitchen-Sketch 工具集
Galacean logoGalacean-互动图形解决方案
xtech logo蚂蚁体验科技
主题编辑器
Made with ❤ by
蚂蚁集团和 Ant Design 开源社区
loading

何时使用

当需要获取标准数值时。

代码演示

基本

数字输入框。

codepen icon
External Link Icon
expand codeexpand code
+
$
+
$
cascader
+
+
¥
前置/后置标签

用于配置一些固定组合。

codepen icon
External Link Icon
expand codeexpand code
高精度小数

通过 stringMode 开启高精度小数支持,onChange 事件将返回 string 类型。对于旧版浏览器,你需要 BigInt polyfill。

codepen icon
External Link Icon
expand codeexpand code
键盘行为

使用 keyboard 属性可以控制键盘行为。

codepen icon
External Link Icon
expand codeexpand code
形态变体

形态变体。

codepen icon
External Link Icon
expand codeexpand code
5.13.0
¥


¥


¥


RMB
前缀/后缀

在输入框上添加前缀或后缀图标。

codepen icon
External Link Icon
expand codeexpand code
三种大小

三种大小的数字输入框,当 size 分别为 large 和 small 时,输入框高度为 40px 和 24px ,默认高度为 32px。

codepen icon
External Link Icon
expand codeexpand code
不可用

点击按钮切换可用状态。

codepen icon
External Link Icon
expand codeexpand code
格式化展示

通过 formatter 格式化数字,以展示具有具体含义的数据,往往需要配合 parser 一起使用。

这里有一个更复杂的货币格式化输入框:https://codesandbox.io/s/currency-wrapper-antd-input-3ynzo

codepen icon
External Link Icon
expand codeexpand code
鼠标滚轮

启用鼠标滚轮控制。

codepen icon
External Link Icon
expand codeexpand code
5.14.0
超出边界

当通过受控将 value 超出边界时,提供警告样式。

codepen icon
External Link Icon
expand codeexpand code
自定义状态

使用 status 为 InputNumber 添加状态,可选 error 或者 warning。

codepen icon
External Link Icon
expand codeexpand code

API

通用属性参考:通用属性

参数说明类型默认值版本
addonAfter带标签的 input,设置后置标签ReactNode-4.17.0
addonBefore带标签的 input,设置前置标签ReactNode-4.17.0
autoFocus自动获取焦点booleanfalse-
changeOnBlur是否在失去焦点时,触发 onChange 事件(例如值超出范围时,重新限制回范围并触发事件)booleantrue5.11.0
changeOnWheel允许鼠标滚轮改变数值boolean-5.14.0
controls是否显示增减按钮,也可设置自定义箭头图标boolean | { upIcon?: React.ReactNode; downIcon?: React.ReactNode; }-4.19.0
decimalSeparator小数点string--
placeholder占位符string-
defaultValue初始值number--
disabled禁用booleanfalse-
formatter指定输入框展示值的格式function(value: number | string, info: { userTyping: boolean, input: string }): string-info: 4.17.0
keyboard是否启用键盘快捷行为booleantrue4.12.0
max最大值numberNumber.MAX_SAFE_INTEGER-
min最小值numberNumber.MIN_SAFE_INTEGER-
parser指定从 formatter 里转换回数字的方式,和 formatter 搭配使用function(string): number--
precision数值精度,配置 formatter 时会以 formatter 为准number--
readOnly只读booleanfalse-
status设置校验状态'error' | 'warning'-4.19.0
prefix带有前缀图标的 inputReactNode-4.17.0
suffix带有后缀图标的 inputReactNode-5.20.0
size输入框大小large | middle | small--
step每次改变步数,可以为小数number | string1-
stringMode字符值模式,开启后支持高精度小数。同时 onChange 将返回 string 类型booleanfalse4.13.0
value当前值number--
variant形态变体outlined | borderless | filledoutlined5.13.0
onChange变化回调function(value: number | string | null)--
onPressEnter按下回车的回调function(e)--
onStep点击上下箭头的回调(value: number, info: { offset: number, type: 'up' | 'down' }) => void-4.7.0

Ref

名称描述版本
blur()移除焦点
focus()获取焦点
nativeElement获取原生 DOM 元素5.17.3

主题变量(Design Token)

组件 Token如何定制?

Token 名称描述类型默认值
activeBg输入框激活状态时背景颜色string#ffffff
activeBorderColor激活态边框色string#1677ff
activeShadow激活态阴影string0 0 0 2px rgba(5, 145, 255, 0.1)
addonBg前/后置标签背景色stringrgba(0, 0, 0, 0.02)
controlWidth输入框宽度number90
errorActiveShadow错误状态时激活态阴影string0 0 0 2px rgba(255, 38, 5, 0.06)
filledHandleBg面性变体操作按钮背景色string#f0f0f0
handleActiveBg操作按钮激活背景色stringrgba(0, 0, 0, 0.02)
handleBg操作按钮背景色string#ffffff
handleBorderColor操作按钮边框颜色string#d9d9d9
handleFontSize操作按钮图标大小number7
handleHoverColor操作按钮悬浮颜色string#1677ff
handleVisible操作按钮可见性true | "auto"auto
handleWidth操作按钮宽度number22
hoverBg输入框hover状态时背景颜色string#ffffff
hoverBorderColor悬浮态边框色string#4096ff
inputFontSize字体大小number14
inputFontSizeLG大号字体大小number16
inputFontSizeSM小号字体大小number14
paddingBlock输入框纵向内边距number4
paddingBlockLG大号输入框纵向内边距number7
paddingBlockSM小号输入框纵向内边距number0
paddingInline输入框横向内边距number11
paddingInlineLG大号输入框横向内边距number11
paddingInlineSM小号输入框横向内边距number7
warningActiveShadow警告状态时激活态阴影string0 0 0 2px rgba(255, 215, 5, 0.1)

全局 Token如何定制?

FAQ

为何受控模式下,value 可以超出 min 和 max 范围?

在受控模式下,开发者可能自行存储相关数据。如果组件将数据约束回范围内,会导致展示数据与实际存储数据不一致的情况。这使得一些如表单场景存在潜在的数据问题。

为何动态修改 min 和 max 让 value 超出范围不会触发 onChange 事件?

onChange 事件为用户触发事件,自行触发会导致表单库误以为变更来自用户操作。我们以错误样式展示超出范围的数值。

为何 onBlur 等事件获取不到正确的 value?

InputNumber 的值由内部逻辑封装而成,通过 onBlur 等事件获取的 event.target.value 仅为 DOM 元素的 value 而非 InputNumber 的实际值。例如通过 formatter 或者 decimalSeparator 更改展示格式,DOM 中得到的就是格式化后的字符串。你总是应该通过 onChange 获取当前值。

为何 changeOnWheel 无法控制鼠标滚轮是否改变数值?

不建议使用 type 属性

InputNumber 组件允许你使用 input 元素的所有属性最终透传至 input 元素,当你传入 type="number" 时 input 元素也会添加这个属性,这会使 input 元素触发原生特性(允许鼠标滚轮改变数值),从而导致 changeOnWheel 无法控制鼠标滚轮是否改变数值。