简体中文
easyinput 组件是对原生input组件的增强 ,是专门为配合表单组件uni-forms而设计的,easyinput 内置了边框,图标等,同时包含 input 所有功能
输入内容后,输入框尾部会显示清除按钮,点击可清除内容,如不需要展示图标,clearable
属性设置为 false
即可
clearable
属性设置为 true
,输入框聚焦且内容不为空时,才会显示内容
<uni-easyinput v-model="value" placeholder="请输入内容"></uni-easyinput>
设置 prefixIcon
属性来显示输入框的头部图标
设置 suffixIcon
属性来显示输入框的尾部图标
注意图标当前只支持 uni-icons
内置的图标,当配置 suffixIcon
属性后,会覆盖 :clearable="true"
和 type="password"
时的原有图标
绑定 @iconClick
事件可以触发图标的点击 ,返回 prefix
表示点击左侧图标,返回 suffix
表示点击右侧图标
<!-- 输入框头部图标 -->
<uni-easyinput prefixIcon="search" v-model="value" placeholder="请输入内容" @iconClick="onClick"></uni-easyinput>
<!-- 展示输入框尾部图标 -->
<uni-easyinput suffixIcon="search" v-model="value" placeholder="请输入内容" @iconClick="onClick"></uni-easyinput>
设置 right
属性来设置右侧内容 插槽。
<uni-easyinput>
<template #right>
<view>密码</view>
</template>
</uni-easyinput>
设置 disable
属性可以禁用输入框,此时输入框不可编辑
<uni-easyinput disabled v-model="value" placeholder="请输入内容"></uni-easyinput>
设置 type="password"
时,输入框内容将会不可见,由实心点代替,同时输入框尾部会显示眼睛图标,点击可切换内容显示状态
<uni-easyinput type="password" v-model="password" placeholder="请输入密码"></uni-easyinput>
设置 focus
属性可以使输入框聚焦
如果页面存在多个设置 focus
属性的输入框,只有最后一个输入框的 focus
属性会生效
<uni-easyinput focus v-model="password" placeholder="请输入内容"></uni-easyinput>
设置 type="textarea"
时可输入多行文本
<uni-easyinput type="textarea" v-model="value" placeholder="请输入内容"></uni-easyinput>
设置 type="textarea"
时且设置 autoHeight
属性,可使用多行文本的自动高度,会跟随内容调整输入框的显示高度
<uni-easyinput type="textarea" autoHeight v-model="value" placeholder="请输入内容"></uni-easyinput>
设置 :inputBorder="false"
时可取消输入框的边框显示,同时搭配 uni-forms
的 :border="true"
有较好的效果
<uni-forms border>
<uni-forms-item label="姓名">
<uni-easyinput :inputBorder="false" placeholder="请输入姓名"></uni-easyinput>
</uni-forms-item>
<uni-forms-item label="年龄">
<uni-easyinput :inputBorder="false" placeholder="请输入年龄"></uni-easyinput>
</uni-forms-item>
</uni-forms>
属性名 | 类型 | 可选值 | 默认值 | 说明 |
---|---|---|---|---|
value | String/ Number | - | - | 输入内容 |
type | String | 见 type Options | text | 输入框的类型(默认text) |
clearable | Boolean | - | true | 是否显示右侧清空内容的图标控件(输入框有内容且不禁用时显示),点击可清空输入框内容 |
autoHeight | Boolean | - | false | 是否自动增高输入区域,type为textarea时有效 |
placeholder | String | - | - | 输入框的提示文字 |
placeholderStyle | String | - | - | placeholder的样式(内联样式,字符串),如"color: #ddd" |
focus | Boolean | - | false | 是否自动获得焦点 |
disabled | Boolean | - | false | 是否不可输入 |
maxlength | Number | - | 140 | 最大输入长度,设置为 -1 的时候不限制最大长度 |
confirmType | String | - | done | 设置键盘右下角按钮的文字,仅在type="text"时生效 |
clearSize | Number | - | 24 | 清除图标的大小,单位px |
prefixIcon | String | - | - | 输入框头部图标 |
suffixIcon | String | - | - | 输入框尾部图标 |
trim | Boolean/String | 见 trim Options | false | 是否自动去除空格,传入类型为 Boolean 时,自动去除前后空格 |
inputBorder | Boolean | - | true | 是否显示input输入框的边框 |
styles | Object | - | - | 样式自定义 |
passwordIcon | Boolean | - | true | type=password 时,是否显示小眼睛图标 |
adjust-position | Boolean | - | true | 弹起键盘时,是否上推页面,平台差异性与内置input组件一致 |
primaryColor | String | - | #2979ff | 设置清除按钮focus时的颜色 |
cursorSpacing | Number | - | 0 | 指定光标与键盘的距离,单位 px 。取 textarea/input 距离底部的距离和 cursor-spacing 指定的距离的最小值作为光标与键盘的距离。详见textarea/input |
属性名 | 说明 |
---|---|
text | 文本输入键盘 |
textarea | 多行文本输入键盘 |
password | 密码输入键盘 |
number | 数字输入键盘,注意iOS上app-vue弹出的数字键盘并非9宫格方式 |
idcard | 身份证输入键盘,仅支持微信、支付宝、百度、QQ小程序 |
digit | 带小数点的数字键盘,均支持,App平台、H5平台 vue 页面在 iOS 平台显示的键盘包含负数(原生键盘不支持负号) |
平台差异与 input 相同
属性名 | 说明 |
---|---|
send | 右下角按钮为“发送” |
search | 右下角按钮为“搜索” |
next | 右下角按钮为“下一个” |
go | 右下角按钮为“前往” |
done | 右下角按钮为“完成” |
属性名 | 默认值 | 说明 |
---|---|---|
color | #333 | 输入文字颜色 |
disableColor | #eee | 输入框禁用背景色 |
borderColor | #e5e5e5 | 边框颜色 |
传入类型为 Boolean
时,自动去除前后空格,传入类型为 String
时,可以单独控制,下面是可选值
属性名 | 说明 |
---|---|
both | 去除两端空格 |
left | 去除左侧空格 |
right | 去除右侧空格 |
all | 去除所有空格 |
none | 不去除空格 |
事件称名 | 说明 | 返回值 | 兼容说明 |
---|---|---|---|
@input | 输入框内容发生变化时触发 | - | |
@clear | 点击右侧叉号图标时触发 | - | 1.1.0新增 |
@focus | 输入框获得焦点时触发 | - | |
@blur | 输入框失去焦点时触发 | - | |
@confirm | 点击完成按钮时触发 | - | |
@iconClick | 点击图标时触发 | prefix/suffix | |
@change | 仅在输入框失去焦点或用户按下回车时触发 | 1.1.0新增 | |
@keyboardheightchange | 键盘高度发生变化时触发 | 1.1.6新增 |
注意
示例依赖了 uni-card
uni-section
uni-scss
等多个组件,直接拷贝示例代码将无法正常运行 。
请到 组件下载页面 ,在页面右侧选择 使用 HBuilderX导入示例项目
,体验完整组件示例。
Template
Script
Style
<template>
<view>
<uni-card :is-shadow="false" is-full>
<text class="uni-h6">easyinput 组件是对原生input组件的增强 ,是专门为配合表单组件 uni-forms 而设计的,easyinput 内置了边框,图标等,同时包含 input所有功能</text>
</uni-card>
<uni-section title="默认" subTitle="使用 focus 属性自动获取输入框焦点" type="line" padding>
<uni-easyinput errorMessage v-model="value" focus placeholder="请输入内容" @input="input"></uni-easyinput>
</uni-section>
<uni-section title="去除空格" subTitle="使用 trim 属性 ,可以控制返回内容的空格 " type="line" padding>
<text class="uni-subtitle">输入内容:{{ '"'+value+'"' }}</text>
<uni-easyinput class="uni-mt-5" trim="all" v-model="value" placeholder="请输入内容" @input="input"></uni-easyinput>
</uni-section>
<uni-section title="自定义样式" subTitle="使用 styles 属性 ,可以自定义输入框样式" type="line" padding>
<uni-easyinput v-model="value" :styles="styles" :placeholderStyle="placeholderStyle" placeholder="请输入内容"@input="input"></uni-easyinput>
</uni-section>
<uni-section title="图标" subTitle="使用 prefixIcon / suffixIcon 属性 ,可以自定义输入框左右侧图标" type="line" padding>
<uni-easyinput prefixIcon="search" v-model="value" placeholder="左侧图标" @iconClick="iconClick">
</uni-easyinput>
<uni-easyinput class="uni-mt-5" suffixIcon="search" v-model="value" placeholder="右侧图标" @iconClick="iconClick"></uni-easyinput>
</uni-section>
<uni-section title="禁用" subTitle="使用 disabled 属性禁用输入框" type="line" padding>
<uni-easyinput disabled value="已禁用" placeholder="请输入内容"></uni-easyinput>
</uni-section>
<uni-section title="密码框" subTitle="指定属性 type=password 使用密码框,右侧会显示眼睛图标" type="line" padding>
<uni-easyinput type="password" v-model="password" placeholder="请输入密码"></uni-easyinput>
</uni-section>
<uni-section title="多行文本" subTitle="指定属性 type=textarea 使用多行文本框" type="line" padding>
<uni-easyinput type="textarea" v-model="value" placeholder="请输入内容"></uni-easyinput>
</uni-section>
<uni-section title="多行文本自动高度" subTitle="使用属性 autoHeight 使多行文本框自动增高" type="line" padding>
<uni-easyinput type="textarea" autoHeight v-model="value" placeholder="请输入内容"></uni-easyinput>
</uni-section>
</view>
</template>