Input

Introduce

props

常规属性

名称 描述 类型 可选值 默认值
value / v-model 绑定值 string / number
type 类型 string text,textarea, tel, password, email, int, float text
maxlength 原生属性,最大输入长度 number
placeholder 输入框占位文本 string
disabled 禁用 boolean false
readonly 只读 boolean false
required 是否必须 boolean false
rows 输入框行数,只对 type=”textarea” 有效 number 2
name input名称 string -
autocomplete 自动填充行为 off,on - -

扩展属性

名称 描述 类型 可选值 默认值
max 数值类型时的最大值 number
min 数值类型时的最小值 number
decimal 浮点型时的小数位数 number - -
prefixIcon 前置图标名称 string
suffixIcon 后置图标名称 string
prefixLabel 前置文本标签(不能与prefixIcon同时生效) string
suffixLabel 后置文本标签(不能与suffixIcon同时生效) string
clearable 清除图标 -
pattern 正则表达式 string - -
validator 数据验证方法,在pattern失败后不会触发 (text:string, callback:(isValid)=>void)=>void; 由回调方法返回是否正确 - -
errorText 输入错误后的文本,会传递到error回调方法中 string - -

events

事件名称 说明 回调参数
blur 在 Input 失去焦点时触发 (event: Event)
focus 在 Input 获得焦点时触发 (event: Event)
change 仅在输入框失去焦点或用户按下回车时触发 (value: string 或 number)
input 在 Input 值改变时触发 (value: string 或 number)
keydown keydown
keyup keyup
error 输入的信息错误时触发 (inputObj:Vue, errorText:string)
click-icon 点击前后图标 (type:string); type为’prefixIcon’或’suffixIcon’

methods

方法名称 说明 回调参数
isValid():boolean 验证输入是否合法
text(str) 设置文本
text():string 获取文本
focus():void 获得焦点 -
markError():void 标记为输入错误状态, 当输入内容改变后按验证规则进行验证. -

example

示例代码.

1
2
3
4
<bp-input value="content" />

<!-- textarea 类型也使用value设置文本内容 -->
<bp-input type="textarea" value="content" />

See the Pen bpui-input by brainpoint (@brainpoint) on CodePen.

自定义主题

图标

组件使用到的图标有:

图标名称 描述
bp-input_warn 错误信息提示图标; 当前内部此图标为空, 如需要可以进行设置
bp-input_clear 清除输入图标

可以使用bpui.icons.registerSvgIcon方式, 进行组件图标自定义

样式结构

组件的样式结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.bp-input {
/* 前后图标 */
.bp-input__prefixIcon {}
.bp-input__suffixIcon {}
/* 前后文本 */
.bp-input__prefixLabel {}
.bp-input__suffixLabel {}
/* 清除图标 */
.bp-input_clearIcon {}
/* 文本框 */
input.bp-input__inner {}

/* focus 状态 */
&.bp-input__focus {}
/* 错误输入的警告状态 */
&.bp-input__warn {}
/* disable 状态 */
&.bp-input__disabled {}

/* textare 多行文本 */
&.bp-input__textarea {
/* 多行文本清除图标 */
.bp-input_clearIcon {}
/* 文本框 */
.bp-input__inner {}
}
/* 字数显示 */
.bp-input__counter {}
}

scss样式文件存放在@bpui/input/style 目录下, 可以复制修改以定制主题