logoNamu Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
  • 国内镜像
1.0.0
  • 组件总览
  • 通用
    • Button按钮
    • FloatButton悬浮按钮New
    • Icon图标
    • Typography排版
  • 布局
    • Divider分割线
    • Grid栅格
    • Layout布局
    • Space间距
  • 导航
    • Anchor锚点
    • Breadcrumb面包屑
    • Dropdown下拉菜单
    • Menu导航菜单
    • Pagination分页
    • Steps步骤条
  • 数据录入
    • AutoComplete自动完成
    • Cascader级联选择
    • Checkbox多选框
    • ColorPicker颜色选择器New
    • 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二维码New
    • Segmented分段控制器
    • Statistic统计数值
    • Table表格
    • Tabs标签页
    • Tag标签
    • Timeline时间轴
    • Tooltip文字提示
    • Tour漫游式引导New
    • Tree树形控件
  • 反馈
    • Alert警告提示
    • Drawer抽屉
    • Message全局提示
    • Modal对话框
    • Notification通知提醒框
    • Popconfirm气泡确认框
    • Progress进度条
    • Result结果
    • Skeleton骨架屏
    • Spin加载中
    • Watermark水印New
  • 其他
    • Affix固钉
    • App包裹组件New
    • ConfigProvider全局化配置
何时使用
代码演示
基本
三种大小
前置/后置标签
不可用
高精度小数
格式化展示
键盘行为
无边框
超出边界
前缀
自定义状态
API
方法
Design Token
FAQ
为何受控模式下,value 可以超出 min 和 max 范围?
为何动态修改 min 和 max 让 value 超出范围不会触发 onChange 事件?
为何 onBlur 等事件获取不到正确的 value?

InputNumber
数字输入框

  • Input输入框Mentions提及

    相关资源

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

    社区

    Awesome Namu Design
    Medium
    Twitter
    yuqueNamu Design 语雀专栏
    Namu Design 知乎专栏
    体验科技专栏
    seeconfSEE Conf-蚂蚁体验科技大会
    加入我们

    帮助

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

    Ant XTech更多产品

    yuque语雀-构建你的数字花园
    AntVAntV-数据可视化解决方案
    EggEgg-企业级 Node.js 框架
    kitchenKitchen-Sketch 工具集
    xtech蚂蚁体验科技
    主题编辑器
    Made with ❤ by
    蚂蚁集团和 Namu Design 开源社区

    通过鼠标或键盘,输入范围内的数值。

    何时使用

    当需要获取标准数值时。

    代码演示

    基本

    数字输入框。

    expand codeexpand code
    +
    $
    +
    $
    cascader
    +
    +
    ¥
    前置/后置标签

    用于配置一些固定组合。

    expand codeexpand code
    高精度小数

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

    expand codeexpand code
    键盘行为

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

    expand codeexpand code
    超出边界

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

    expand codeexpand code
    自定义状态

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

    expand codeexpand code
    三种大小

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

    expand codeexpand code
    不可用

    点击按钮切换可用状态。

    expand codeexpand code
    格式化展示

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

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

    expand codeexpand code
    无边框

    没有边框。

    expand codeexpand code
    ¥


    ¥


    ¥
    前缀

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

    expand codeexpand code

    API

    通用属性参考:通用属性

    参数说明类型默认值版本
    addonAfter带标签的 input,设置后置标签ReactNode-4.17.0
    addonBefore带标签的 input,设置前置标签ReactNode-4.17.0
    autoFocus自动获取焦点booleanfalse-
    bordered是否有边框booleantrue4.12.0
    controls是否显示增减按钮,也可设置自定义箭头图标boolean | { upIcon?: React.ReactNode; downIcon?: React.ReactNode; }-4.19.0
    decimalSeparator小数点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
    size输入框大小large | middle | small--
    step每次改变步数,可以为小数number | string1-
    stringMode字符值模式,开启后支持高精度小数。同时 onChange 将返回 string 类型booleanfalse4.13.0
    value当前值number--
    onChange变化回调function(value: number | string | null)--
    onPressEnter按下回车的回调function(e)--
    onStep点击上下箭头的回调(value: number, info: { offset: number, type: 'up' | 'down' }) => void-4.7.0

    方法

    名称描述
    blur()移除焦点
    focus()获取焦点

    Design Token

    组件 Token

    全局 Token

    FAQ

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

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

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

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

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

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