logoAnt Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
  • 国内镜像
5.25.1
  • 组件总览
  • 通用
    • Button按钮
    • FloatButton悬浮按钮
      5.0.0
    • Icon图标
    • Typography排版
  • 布局
    • Divider分割线
    • Flex弹性布局
      5.10.0
    • Grid栅格
    • Layout布局
    • Space间距
    • Splitter分隔面板
      5.21.0
  • 导航
    • Anchor锚点
    • Breadcrumb面包屑
    • Dropdown下拉菜单
    • Menu导航菜单
    • Pagination分页
    • Steps步骤条
    • Tabs标签页
  • 数据录入
    • 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表格
    • 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

Input
输入框

通过鼠标或键盘输入内容,是最基础的表单域的包装。
使用import { Input } from "antd";
源码components/input
文档
编辑此页更新日志

相关资源

Ant Design X
Ant Design Charts
Ant Design Pro
Pro Components
Ant Design Mobile
Ant Design Mini
Ant Design Web3
Ant Design Landing-首页模板集
Scaffolds-脚手架市场
Umi-React 应用开发框架
dumi-组件/文档研发工具
qiankun-微前端框架
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

何时使用

  • 需要用户输入表单域内容时。
  • 提供组合型输入框,带搜索的输入框,还可以进行大小选择。

代码演示

基本使用

基本使用。

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

Input 形态变体,可选 outlined filled borderless underlined 四种形态。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
5.13.0
https://
Zhejiang
紧凑模式

使用 Space.Compact 创建紧凑模式,更多请查看 Space.Compact 文档。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code




搜索框 loading

用于 onSearch 的时候展示 loading。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
适应文本高度的文本域

autoSize 属性适用于 textarea 节点,并且只有高度会自动变化。另外 autoSize 可以设定为一个对象,指定最小行数和最大行数。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
输入时格式化展示

结合 Tooltip 组件,实现一个数值输入框,方便内容超长时的全量展现。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
密码框

密码框。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
0 / 200 / 1000 / 100
带字数提示

展示字数提示。

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

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

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code




三种大小

我们为 <Input /> 输入框定义了三种尺寸(大、默认、小),高度分别为 40px、32px 和 24px。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
http://.com
http://
.com
http://.com
cascader
前置/后置标签

用于配置一些固定组合。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
https://
搜索框

带有搜索按钮的输入框。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code


文本域

用于多行输入。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
With formatter (Upcase)
With Disabled
With Length (8)
With variant
With custom display character
With custom ReactNode separator
/////
With custom function separator
—————
一次性密码框

一次性密码输入框。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
5.16.0


¥RMB

¥RMB
前缀和后缀

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

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code


带移除图标

带移除图标的输入框,点击图标删除所有内容。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Exceed Max
12 / 10
Emoji count as length 1
3
Not exceed max
6 / 6
定制计数能力

在某些场景下,需要定制计数能力(例如 emoji 长度以 1 计算),可以通过 count 属性来实现。在该模式下,通过 count.max 属性来超出原生 maxLength 的限制。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
>= 5.10.0

聚焦

聚焦额外配置属性。

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code

API

通用属性参考:通用属性

Input

参数说明类型默认值版本
addonAfter带标签的 input,设置后置标签ReactNode-
addonBefore带标签的 input,设置前置标签ReactNode-
allowClear可以点击清除图标删除内容boolean | { clearIcon: ReactNode }-
bordered是否有边框, 请使用 variant 替换booleantrue4.5.0
classNames语义化结构 classRecord<SemanticDOM, string>-5.4.0
count字符计数配置CountConfig-5.10.0
defaultValue输入框默认内容string-
disabled是否禁用状态,默认为 falsebooleanfalse
id输入框的 idstring-
maxLength最大长度number-
prefix带有前缀图标的 inputReactNode-
showCount是否展示字数boolean | { formatter: (info: { value: string, count: number, maxLength?: number }) => ReactNode }false4.18.0 info.value: 4.23.0
status设置校验状态'error' | 'warning'-4.19.0
styles语义化结构 styleRecord<SemanticDOM, CSSProperties>-5.4.0
size控件大小。注:标准表单内的输入框大小限制为 middlelarge | middle | small-
suffix带有后缀图标的 inputReactNode-
type声明 input 类型,同原生 input 标签的 type 属性,见:MDN(请直接使用 Input.TextArea 代替 type="textarea")stringtext
value输入框内容string-
variant形态变体outlined | borderless | filled | underlinedoutlined5.13.0 | underlined: 5.24.0
onChange输入框内容变化时的回调function(e)-
onPressEnter按下回车的回调function(e)-
onClear按下清除按钮的回调() => void-5.20.0

如果 Input 在 Form.Item 内,并且 Form.Item 设置了 id 属性,则 value defaultValue 和 id 属性会被自动设置。

Input 的其他属性和 React 自带的 input 一致。

CountConfig

tsx
interface CountConfig {
// 最大字符数,不同于原生 `maxLength`,超出后标红但不会截断
max?: number;
// 自定义字符计数,例如标准 emoji 长度大于 1,可以自定义计数策略将其改为 1
strategy?: (value: string) => number;
// 同 `showCount`
show?: boolean | ((args: { value: string; count: number; maxLength?: number }) => ReactNode);
// 当字符数超出 `count.max` 时的自定义裁剪逻辑,不配置时不进行裁剪
exceedFormatter?: (value: string, config: { max: number }) => string;
}

Input.TextArea

同 Input 属性,外加:

参数说明类型默认值版本
autoSize自适应内容高度,可设置为 true | false 或对象:{ minRows: 2, maxRows: 6 }boolean | objectfalse
classNames语义化结构 classRecord<SemanticDOM, string>-5.4.0
styles语义化结构 styleRecord<SemanticDOM, CSSProperties>-5.4.0

Input.TextArea 的其他属性和浏览器自带的 textarea 一致。

Input.Search

参数说明类型默认值
enterButton是否有确认按钮,可设为按钮文字。该属性会与 addonAfter 冲突。ReactNodefalse
loading搜索 loadingbooleanfalse
onSearch点击搜索图标、清除图标,或按下回车键时的回调function(value, event, { source: "input" | "clear" })-

其余属性和 Input 一致。

Input.Password

参数说明类型默认值版本
iconRender自定义切换按钮(visible) => ReactNode(visible) => (visible ? <EyeOutlined /> : <EyeInvisibleOutlined />)4.3.0
visibilityToggle是否显示切换按钮或者控制密码显隐boolean | VisibilityToggletrue

Input.OTP

5.16.0 新增。

开发者注意事项:

当 mask 属性的类型为 string 时,我们强烈推荐接收单个字符或单个 emoji,如果传入多个字符或多个 emoji,则会在控制台抛出警告。

参数说明类型默认值版本
defaultValue默认值string-
disabled是否禁用booleanfalse
formatter格式化展示,留空字段会被 填充(value: string) => string-
separator分隔符,在指定索引的输入框后渲染分隔符ReactNode |((i: number) => ReactNode)-5.24.0
mask自定义展示,和 formatter 的区别是不会修改原始值boolean | stringfalse5.17.0
length输入元素数量number6
status设置校验状态'error' | 'warning'-
size输入框大小small | middle | largemiddle
variant形态变体outlined | borderless | filled | underlinedoutlinedunderlined: 5.24.0
value输入框内容string-
onChange当输入框内容全部填充时触发回调(value: string) => void-
onInput输入值变化时触发的回调(value: string[]) => void-5.22.0

VisibilityToggle

PropertyDescriptionTypeDefaultVersion
visible用于手动控制密码显隐booleanfalse4.24
onVisibleChange显隐密码的回调(visible) => void-4.24

Input Methods

名称说明参数版本
blur取消焦点-
focus获取焦点(option?: { preventScroll?: boolean, cursor?: 'start' | 'end' | 'all' })option - 4.10.0

Semantic DOM

Input

17
  • input
    5.4.0
    输入框元素
  • prefix
    5.4.0
    前缀的包裹元素
  • suffix
    5.4.0
    后缀的包裹元素
  • count
    5.4.0
    文字计数元素

Input.TextArea

17 / 100
  • textarea
    5.4.0
    输入框元素
  • count
    5.4.0
    文字计数元素

主题变量(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)
errorActiveShadow错误状态时激活态阴影string0 0 0 2px rgba(255,38,5,0.06)
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

为什么我动态改变 prefix/suffix/showCount 时,Input 会失去焦点?

当 Input 动态添加或者删除 prefix/suffix/showCount 时,React 会重新创建 DOM 结构而新的 input 是没有焦点的。你可以预设一个空的 <span /> 来保持 DOM 结构不变:

jsx
const suffix = condition ? <Icon type="smile" /> : <span />;
<Input suffix={suffix} />;

为何 TextArea 受控时,value 可以超过 maxLength?

受控时,组件应该按照受控内容展示。以防止在表单组件内使用时显示值和提交值不同的问题。