logoNamu Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
1.0.0
  • Components Overview
  • General
    • Button
    • FloatButtonNew
    • Icon
    • Typography
  • Layout
    • Divider
    • Grid
    • Layout
    • Space
  • Navigation
    • Anchor
    • Breadcrumb
    • Dropdown
    • Menu
    • Pagination
    • Steps
  • Data Entry
    • AutoComplete
    • Cascader
    • Checkbox
    • ColorPickerNew
    • DatePicker
    • Form
    • Input
    • InputNumber
    • Mentions
    • Radio
    • Rate
    • Select
    • Slider
    • Switch
    • TimePicker
    • Transfer
    • TreeSelect
    • Upload
  • Data Display
    • Avatar
    • Badge
    • Calendar
    • Card
    • Carousel
    • Collapse
    • Descriptions
    • Empty
    • Image
    • List
    • Popover
    • QRCodeNew
    • Segmented
    • Statistic
    • Table
    • Tabs
    • Tag
    • Timeline
    • Tooltip
    • TourNew
    • Tree
  • Feedback
    • Alert
    • Drawer
    • Message
    • Modal
    • Notification
    • Popconfirm
    • Progress
    • Result
    • Skeleton
    • Spin
    • Watermark
  • Other
    • Affix
    • AppNew
    • ConfigProvider
When To Use
Examples
Basic
Sizes
Pre / Post tab
Disabled
High precision decimals
Formatter
Keyboard
Borderless
Out of range
Prefix
Status
API
Methods
Design Token
Notes
FAQ
Why value can exceed min or max in control?
Why dynamic change min or max which makes value out of range will not trigger onChange?
Why onBlur or other event can not get correct value?

InputNumber

  • InputMentions

    Resources

    Namu Design Charts
    Namu Design Pro
    Namu Design Pro Components
    Namu Design Mobile
    Namu Design Mini
    Namu Design Landing-Landing Templates
    Scaffolds-Scaffold Market
    Umi-React Application Framework
    dumi-Component doc generator
    qiankun-Micro-Frontends Framework
    ahooks-React Hooks Library
    Ant Motion-Motion Solution
    China Mirror 🇨🇳

    Community

    Awesome Namu Design
    Medium
    Twitter
    yuqueNamu Design in YuQue
    Namu Design in Zhihu
    Experience Cloud Blog
    seeconfSEE Conf-Experience Tech Conference

    Help

    GitHub
    Change Log
    FAQ
    Bug Report
    Issues
    Discussions
    StackOverflow
    SegmentFault

    Ant XTechMore Products

    yuqueYuQue-Document Collaboration Platform
    AntVAntV-Data Visualization
    EggEgg-Enterprise Node.js Framework
    kitchenKitchen-Sketch Toolkit
    xtechAnt Financial Experience Tech
    Theme Editor
    Made with ❤ by
    Ant Group and Namu Design Community

    Enter a number within certain range with the mouse or keyboard.

    When To Use

    When a numeric value needs to be provided.

    Examples

    Basic

    Numeric-only input box.

    expand codeexpand code
    Pre / Post tab

    Using pre & post tabs example.

    expand codeexpand code
    High precision decimals

    Use stringMode to support high precision decimals support. onChange will return string value instead. You need polyfill of BigInt if browser not support.

    expand codeexpand code
    Keyboard

    Control keyboard behavior by keyboard.

    expand codeexpand code
    Out of range

    Show warning style when value is out of range by control.

    expand codeexpand code
    Status

    Add status to InputNumber with status, which could be error or warning.

    expand codeexpand code
    Sizes

    There are three sizes available to a numeric input box. By default, the size is 32px. The two additional sizes are large and small which means 40px and 24px, respectively.

    expand codeexpand code
    Disabled

    Click the button to toggle between available and disabled states.

    expand codeexpand code
    Formatter

    Display value within it's situation with formatter, and we usually use parser at the same time.

    Here is a Intl.NumberFormat InputNumber implementation: https://codesandbox.io/s/currency-wrapper-antd-input-3ynzo

    expand codeexpand code
    Borderless

    No border.

    expand codeexpand code
    Prefix

    Add a prefix inside input.

    expand codeexpand code

    API

    Common props ref:Common props

    PropertyDescriptionTypeDefaultVersion
    addonAfterThe label text displayed after (on the right side of) the input fieldReactNode-
    addonBeforeThe label text displayed before (on the left side of) the input fieldReactNode-
    autoFocusIf get focus when component mountedbooleanfalse-
    borderedWhether has border stylebooleantrue4.12.0
    controlsWhether to show +- controls, or set custom arrows iconboolean | { upIcon?: React.ReactNode; downIcon?: React.ReactNode; }-4.19.0
    decimalSeparatorDecimal separatorstring--
    defaultValueThe initial valuenumber--
    disabledIf disable the inputbooleanfalse-
    formatterSpecifies the format of the value presentedfunction(value: number | string, info: { userTyping: boolean, input: string }): string-info: 4.17.0
    keyboardIf enable keyboard behaviorbooleantrue4.12.0
    maxThe max valuenumberNumber.MAX_SAFE_INTEGER-
    minThe min valuenumberNumber.MIN_SAFE_INTEGER-
    parserSpecifies the value extracted from formatterfunction(string): number--
    precisionThe precision of input value. Will use formatter when config of formatternumber--
    readOnlyIf readonly the inputbooleanfalse-
    statusSet validation status'error' | 'warning'-4.19.0
    prefixThe prefix icon for the InputReactNode-4.17.0
    sizeThe height of input boxlarge | middle | small--
    stepThe number to which the current value is increased or decreased. It can be an integer or decimalnumber | string1-
    stringModeSet value as string to support high precision decimals. Will return string value by onChangebooleanfalse4.13.0
    valueThe current valuenumber--
    onChangeThe callback triggered when the value is changedfunction(value: number | string | null)--
    onPressEnterThe callback function that is triggered when Enter key is pressedfunction(e)--
    onStepThe callback function that is triggered when click up or down buttons(value: number, info: { offset: number, type: 'up' | 'down' }) => void-4.7.0

    Methods

    NameDescription
    blur()Remove focus
    focus()Get focus

    Design Token

    Component Token

    Global Token

    Notes

    Per issues #21158, #17344, #9421, and documentation about inputs, it appears this community does not support native inclusion of the type="number" in the <Input /> attributes, so please feel free to include it as needed, and be aware that it is heavily suggested that server side validation be utilized, as client side validation can be edited by power users.

    FAQ

    Why value can exceed min or max in control?

    Developer handle data by their own in control. It will make data out of sync if InputNumber change display value. It also cause potential data issues when use in form.

    Why dynamic change min or max which makes value out of range will not trigger onChange?

    onChange is user trigger event. Auto trigger will makes form lib can not detect data modify source.

    Why onBlur or other event can not get correct value?

    InputNumber's value is wrapped by internal logic. The event.target.value you get from onBlur or other event is the DOM element's value instead of the actual value of InputNumber. For example, if you change the display format through formatter or decimalSeparator, you will get the formatted string in the DOM. You should always get the current value through onChange.

    +
    $
    +
    $
    cascader
    +
    +
    ¥
    ¥


    ¥


    ¥