sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
173 lines (121 loc) • 15.6 kB
Markdown
---
nav: 组件
title: Input
subtitle: 输入框
group: 表单组件
---
## 介绍
接收用户输入的文本信息。
## 引入
```ts
import Input from 'sard-uniapp/components/input/input.vue'
```
## 代码演示
### 基础使用
可以通过 `v-model` 绑定输入框的值,通过 `placeholder` 设置占位提示文字。
@code('${DEMO_PATH}/input/demo/Basic.vue')
### 自定义样式
可以对其尺寸、颜色、背景色、边框等样式进行设置。
@code('${DEMO_PATH}/input/demo/Style.vue')
### 类型
据 `type` 属性定义不同类型的输入框,默认值为 `text。`
@code('${DEMO_PATH}/input/demo/Type.vue')
### 可清除的
设置了 `clearable` 属性后,在输入框有值时会显示清除按钮。
@code('${DEMO_PATH}/input/demo/Clearable.vue')
### 聚焦时显示清除按钮
只在输入框获取焦点时显示清除按钮。
@code('${DEMO_PATH}/input/demo/ShowClearOnlyFocus.vue')
### 只读和禁用
只读或禁用时无法输入。
@code('${DEMO_PATH}/input/demo/DisabledReadOnly.vue')
### 插槽
可以通过前置或后置插槽添加额外的内容。
@code('${DEMO_PATH}/input/demo/Slot.vue')
### 去除边框
清除边框后页面看起来会很清爽。
@code('${DEMO_PATH}/input/demo/Borderless.vue')
### 嵌入的
`inlaid` 用于清除边框和内边距,以便可以嵌入到其他组件内。
@code('${DEMO_PATH}/input/demo/Inlaid.vue')
### 多行文本
设置 `type="textarea"` 可以换行输入。
@code('${DEMO_PATH}/input/demo/Multiple.vue')
### 自动高度
设置自动高度可以让文本域随输入内容变多而增高。
另外可以设置 `minHeight` 设置文本域的最小高度。
@code('${DEMO_PATH}/input/demo/AutoHeight.vue')
### 字数提示
设置 `showCount` 属性可以显示当前输入的字数和总字数;
设置 `maxlength` 可以限制输入的最大字数。
@code('${DEMO_PATH}/input/demo/ShowCount.vue')
## API
### InputProps
| 属性 | 描述 | 类型 | 默认值 |
| ------------------------------- | ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- | ------ |
| root-class | 组件根元素类名 | string | - |
| root-style | 组件根元素样式 | StyleValue | - |
| model-value (v-model) | 输入框值 | string \| number | - |
| clearable | 是否显示清空按钮 | boolean | false |
| show-clear-only-focus | 是否只在聚焦时显示清空按钮 | boolean | false |
| show-count | 是否展示字数 | boolean | false |
| inlaid | 嵌入式状态 | boolean | false |
| borderless | 是否隐藏边框 | boolean | false |
| readonly | 只读状态 | boolean | false |
| focused | 是否显示获焦样式,用于结合自定义键盘使用时显示高亮效果 | boolean | false |
| min-height | 输入框最小高度 | string | - |
| placeholder | 输入框占位符内容 | string | - |
| placeholder-style | 输入框占位符样式 | string | - |
| placeholder-class | 输入框占位符类名 | string | - |
| disabled | 禁用状态 | boolean | false |
| maxlength | 最大输入长度,设置为 -1 的时候不限制最大长度 | number | 140 |
| focus | 获取焦点 | boolean | - |
| cursor-spacing | 指定光标与键盘的距离 | number | 30 |
| cursor | 指定 focus 时的光标位置 | number | -1 |
| confirm-type | 设置键盘右下角按钮的文字 | "send" \| "search" \| "next" \| "go" \| "done" | 'done' |
| confirm-hold | 点击键盘右下角按钮时是否保持键盘不收起 | boolean | false |
| selection-start | 光标起始位置 | number | -1 |
| selection-end | 光标结束位置 | number | -1 |
| adjust-position | 键盘弹起时,是否自动上推页面 | boolean | true |
| hold-keyboard | focus 时,点击页面的时候不收起键盘 | boolean | false |
| auto-blur | 键盘收起时,是否自动失去焦点 | boolean | false |
| ignore-composition-event | 是否忽略组件内对文本合成系统事件的处理 | boolean | true |
| inputmode | 用户在编辑元素或其内容时可能输入的数据类型的提示 | 'none' \| 'text' \| 'decimal' \| 'numeric' \| 'tel' \| 'search' \| 'email' \| 'url' | 'text' |
| auto-height | 文本域自动高度 | boolean | false |
| fixed | 如果 `textarea` 是在一个 `position:fixed` 的区域,需要显示指定属性 `fixed` 为 `true` | boolean | false |
| show-confirm-bar | 是否显示键盘上方带有”完成“按钮那一栏 | boolean | true |
| disable-default-padding | 是否去掉 iOS 下的默认内边距 | boolean | false |
| type | 输入框类型 | 'text' \| 'password' \| 'textarea' \| 'number' \|'idcard' \| 'digit' \| 'tel' \| 'safe-password' \| 'nickname' | 'text' |
| always-embed | 强制 input 处于同层状态 | boolean | - |
| safe-password-cert-path | 安全键盘加密公钥的路径,只支持包内路径 | string | - |
| safe-password-length | 安全键盘输入密码长度 | number | - |
| safe-password-time-stamp | 安全键盘加密时间戳 | number | - |
| safe-password-nonce | 安全键盘加密盐值 | string | - |
| safe-password-salt | 安全键盘计算 `hash` 盐值,若指定 `custom-hash` 则无效 | string | - |
| safe-password-custom-hash | 安全键盘计算 `hash` 的算法表达式 | string | - |
| random-number | 当 `type` 为 `number, digit, idcard` 数字键盘是否随机排列 | boolean | false |
| controlled | 是否为受控组件。为 `true` 时,value 内容会完全受 `setData` 控制 | boolean | false |
| always-system | 是否强制使用系统键盘和 `Web-view `创建的 `input` 元素 | boolean | false |
| validate-event | 是否触发表单验证 | boolean | true |
| show-eye <sup>1.21.2+</sup> | `type` 为 `password` 时,是否显示眼睛图标按钮 | boolean | false |
| enableNative <sup>1.23.5+</sup> | (支付宝小程序)是否启用原生input元素 | boolean | false |
### InputSlots
| 插槽 | 描述 | 属性 |
| ------- | -------------------- | ---- |
| prepend | 自定义输入框前面内容 | - |
| append | 自定义输入框后面内容 | - |
### InputEmits
| 事件 | 描述 | 类型 |
| ------------------------ | ------------------------------ | ----------------------- |
| update:model-value | 输入框值改变时触发 | (value: string) => void |
| input <sup>1.9.2+</sup> | 输入框值改变时触发 | (value: string) => void |
| change <sup>1.9.2+</sup> | 键盘非聚焦状态且内容改变时触发 | (value: string) => void |
| clear | 点击清除按钮时触发 | () => void |
| focus | 聚焦时触发 | (event: any) => void |
| blur | 失焦时触发 | (event: any) => void |
| linechange | 输入框行数变化时触发 | (event: any) => void |
| confirm | 点击完成时触发 | (event: any) => void |
| keyboardheightchange | 键盘高度发生变化的时候触发 | (event: any) => void |
## 主题定制
### CSS 变量
@code('./variables.scss#variables')