---
title: Input - 输入框
order: 5
path: /input
nav:
  order: 1
  title: 桌面组件
  path: /design
group:
  order: 3
  title: 数据录入
  path: /dataInput
---

用于承载用户信息录入的文本框，常用于表单、对话框等场景，对不同内容的信息录入，可拓展形成多种信息录入形式。

## 基础输入框

最基础的单行输入框，按状态可分为正常、禁用、错误、带额外提示。通常在需要输入少量内容（20 个字以内）的场景下使用。

<code src="./demos/base.tsx" height="400px"/>

## 带前后置标签输入框

在输入框前后加入一些特定的纯展示标签，通常在需要提高辨识效率时使用。

<code src="./demos/addon.tsx" height="400px"/>

## 带前后置图标输入框

在输入框前后加入图表，通常在用于一些特定的输入场景。

<code src="./demos/pureIcon.tsx" height="400px"/>

## 可清空内容输入框

带清空操作的输入框，可快捷清空输入过的内容。

<code src="./demos/clear.tsx" height="400px"/>

## 带字数限制的输入框

<code src="./demos/count.tsx" height="400px"/>

## 不同状态的输入框

输入框状态可分为：正常、禁用、异常（带提示）、带额外内容提示、带状态图标提示。

<code src="./demos/status.tsx" height="400px"/>

## 不同尺寸的输入框

<code src="./demos/size.tsx" height="400px"/>

## 不同对齐方式的输入框

<code src="./demos/textAlign.tsx" height="400px"/>

## 查询输入

<code src="./demos/search.tsx" height="400px"/>

## 密码

<code src="./demos/password.tsx" height="400px"/>

## 多行文本

<code src="./demos/text.tsx" height="400px"/>

<!-- ##### UI 规范

<code src="./demos/ui.tsx" height="400px"/> -->

## API

### Input

| 参数          | 说明                                                                                                                                                                                | 类型                                                                           | 默认值 |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------ |
| addonAfter    | 带标签的 input，设置后置标签                                                                                                                                                        | ReactNode                                                                      | -      |
| addonBefore   | 带标签的 input，设置前置标签                                                                                                                                                        | ReactNode                                                                      | -      |
| allowClear    | 可以点击清除图标删除内容                                                                                                                                                            | boolean \| { clearIcon: ReactNode }                                            | -      |
| bordered      | 是否有边框                                                                                                                                                                          | boolean                                                                        | true   |
| defaultValue  | 输入框默认内容                                                                                                                                                                      | string                                                                         | -      |
| disabled      | 是否禁用状态，默认为 false                                                                                                                                                          | boolean                                                                        | false  |
| id            | 输入框的 id                                                                                                                                                                         | string                                                                         | -      |
| maxLength     | 最大长度                                                                                                                                                                            | number                                                                         | -      |
| showCount     | 是否展示字数                                                                                                                                                                        | boolean \| { formatter: ({ count: number, maxLength?: number }) => ReactNode } | false  |
| status        | 设置校验状态                                                                                                                                                                        | 'error' \| 'warning'                                                           | -      |
| prefix        | 带有前缀图标的 input                                                                                                                                                                | ReactNode                                                                      | -      |
| size          | 控件大小。注：标准表单内的输入框大小限制为 `middle`                                                                                                                                 | `large` \| `middle` \| `small`                                                 | -      |
| suffix        | 带有后缀图标的 input                                                                                                                                                                | ReactNode                                                                      | -      |
| type          | 声明 input 类型，同原生 input 标签的 type 属性，见：[MDN](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/input#属性)(请直接使用 `Input.TextArea` 代替 `type="textarea"`) | string                                                                         | `text` |
| value         | 输入框内容                                                                                                                                                                          | string                                                                         | -      |
| onChange      | 输入框内容变化时的回调                                                                                                                                                              | function(e)                                                                    | -      |
| onPressEnter  | 按下回车的回调                                                                                                                                                                      | function(e)                                                                    | -      |
| vertify(可选) | 校验配置                                                                                                                                                                            | [VertifyProps](#VertifyProps)                                                  | -      |

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

Input 的其他属性和 React 自带的 [input](https://reactjs.org/docs/dom-elements.html#all-supported-html-attributes) 一致。

#### VertifyProps

| 参数          | 说明     | 类型               | 默认值 |
| ------------- | -------- | ------------------ | ------ |
| status(必填)  | 状态     | `success \| error` | -      |
| message(可选) | 提示消息 | `string`           | -      |

### Input.TextArea

| 参数         | 说明                                                                      | 类型                                                                        | 默认值 |
| ------------ | ------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------ |
| allowClear   | 可以点击清除图标删除内容                                                  | boolean                                                                     | false  |
| autoSize     | 自适应内容高度，可设置为 true \| false 或对象：{ minRows: 2, maxRows: 6 } | boolean \| object                                                           | false  |
| bordered     | 是否有边框                                                                | boolean                                                                     | true   |
| defaultValue | 输入框默认内容                                                            | string                                                                      | -      |
| maxLength    | 内容最大长度                                                              | number                                                                      | -      |
| showCount    | 是否展示字数                                                              | boolean \| { formatter: ({ count: number, maxLength?: number }) => string } | false  |
| value        | 输入框内容                                                                | string                                                                      | -      |
| onPressEnter | 按下回车的回调                                                            | function(e)                                                                 | -      |
| onResize     | resize 回调                                                               | function({ width, height })                                                 | -      |

`Input.TextArea` 的其他属性和浏览器自带的 [textarea](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea) 一致。

### Input.Search

| 参数        | 说明                                                           | 类型                   | 默认值 |
| ----------- | -------------------------------------------------------------- | ---------------------- | ------ |
| enterButton | 是否有确认按钮，可设为按钮文字。该属性会与 `addonAfter` 冲突。 | boolean \| ReactNode   | false  |
| loading     | 搜索 loading                                                   | boolean                | false  |
| onSearch    | 点击搜索图标、清除图标，或按下回车键时的回调                   | function(value, event) | -      |

其余属性和 Input 一致。

### Input.Group

| 参数    | 说明                                                                  | 类型    | 默认值    |
| ------- | --------------------------------------------------------------------- | ------- | --------- |
| compact | 是否用紧凑模式                                                        | boolean | false     |
| size    | `Input.Group` 中所有的 `Input` 的大小，可选 `large` `default` `small` | string  | `default` |

### Input.Password

| 参数             | 说明             | 类型                   | 默认值                                                                    |
| ---------------- | ---------------- | ---------------------- | ------------------------------------------------------------------------- |
| iconRender       | 自定义切换按钮   | (visible) => ReactNode | (visible) => (visible ? &lt;EyeOutlined /> : &lt;EyeInvisibleOutlined />) |
| visibilityToggle | 是否显示切换按钮 | boolean                | true                                                                      |

### Input Methods

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