输入框 Input

基于原生组件Input封装,用于接收单行文本,支持文本、密码、数字、身份证等类型的输入。

用户可控制是否显示输入框标题,是否出现清除按钮,还可以自定义 Input 组件的右边部分(传入 slot),实现自定义按钮、验证码输入框等。

基础案例

Input的标题部分是通过 label 属性来实现,你还可以通过placeholder 来显示自定义的占位文本。

示例代码

  1. <l-input label="用户名" placeholder="请输入用户名" />
  2. <l-input label="密码" placeholder="请输入密码" />

基础案例

对齐方式

根据具体需求,选择最佳的标签对齐方式(输入框标题和输入框部分)。

label-layout 默认值是 left ,即输入框标题在 label-width 设置的范围内居左显示。值为 right 时,输入框标题居右显示。

另外,我们还可以通过 label-width 来设置标题部分的宽度,默认是200,单位是rpx。

示例代码

  1. <l-input label="名称" label-layout="left" label-width="170" />
  2. <l-input label="名称" label-layout="right" label-width="170" />

位置

隐藏表单标题

在不需要显示左侧表单标题时候,可以设置hideLabel=”true”将左侧表单标题隐藏。

示例代码

  1. <l-input label="标题" placeholder="这里没有隐藏标题" />
  2. <l-input placeholder="这里隐藏了标题" hide-label="{{true}}" />

隐藏label

输入框类型

输入框类型的可选值有 textidcardpasswordnumberdigit ,可根据不同的场景选择。

示例代码

  1. <l-input label="数字" type="number" placeholder="请输入数字" />

类型

清除按钮

当我们设置 cleartrue 时,并且当输入框输入内容后,会显示 清除按钮 ,我们可以通过点击它来清除文本内容。

示例代码

  1. <l-input label="清除按钮" clear="{{true}}" />

清除按钮

设置必选项

输入框要显示必填图标,设置 requiredtrue 即可。这里只是显示必填图标 * ,不会自动判断是否输入内容,如果需要判断输入内容,请查看设置校验规则部分。

示例代码

  1. <l-input label="必填" placeholder="这里是必填项" required="{{true}}" />

input

设置校验规则

设置表单校验是为了在防止用户犯错的前提下,尽可能让用户更早地发现并纠正错误,我们可以通过 rules 属性来设置相对应的校验规则。详细使用方法请查看校验规则输入框 Input - 图7

示例代码

  1. <l-input label="银行卡号" placeholder="请输入代理商的银行卡号" required="{{true}}" rules="{{cardRule}}" />
  1. data:{
  2. cardRule:[{
  3. required: true
  4. },{
  5. type: 'number',
  6. min: 16,
  7. max: 19,
  8. message: "长度在16-19之间"
  9. }]
  10. }

设置禁用

当我们需要讲表单项禁用时,设置 disabledtrue 即可。

示例代码

  1. <l-input label="禁用" disabled="{{true}}" placeholder="禁止输入" />

disabled

自定义Input组件右边部分

通过 <slot> 的方式可以自定义Input 组件的右边部分,实现自定义按钮、验证码输入框等。
另外需要注意的是传入进去的slot需要制定他的slot属性的值为right

示例代码

  1. <l-input label="验证码" label-layout="left" placeholder="请输入验证码" >
  2. <img slot="right" src="path/to/img.png">
  3. </l-input>

自定义

自定义Input组件左边(label)部分

通过 <slot> 的方式可以自定义Input 组件的label部分,实现带图标的输入框等。

示例代码

  1. <l-input placeholder="请输入邮箱" >
  2. <view class="email" slot="left">
  3. <img src="path/to/email.png">
  4. <text>邮箱:</text>
  5. </view>
  6. </l-input>

表单项属性(Input Attributes)

参数说明类型可选值默认值
label表单标题(label)的文本String
hide-label隐藏表单标题(label)的文本Boollentrue/falsefalse
width表单的宽,单位是rpxNumber750
required是否必选Booleantrue/falsefalse
type输入框类型,可选值为 text,idcard,digit,password,numberStringtext/idcard/digit/password/numbertext
value输入框的值String
placeholder占位文本String
colon是否需要冒号Booleantrue/falsefalse
focus获取焦点Booleantrue/falsefalse
clear是否显示清除按钮Booleantrue/falsefalse
maxlength最大输入长度,设置为 -1 的时候不限制最大长度Number140
rules输入内容的校验规则Object
label-width表单项标题部分的宽度,单位rpxNumber200
disabled设置是否禁用Booleantrue/falsefalse
label-layout设置表单标题的显示位置Stringleft/rightleft
placeholder-style设置输入框占位文本的内联样式String
tip-type校验错误提醒方式Stringtoast/message/text-

表单项外部样式类(Input ExternalClasses)

外部样式类名说明备注
l-class设置表单项的外部样式类
l-error-text-classtipType 为 text 时,错误提示信息外部样式类取代l-error-text

已经弃用的外部样式类

以下这些外部样式类已经停止支持,将在未来的某个版本中去除,请使用上方的外部样式类替代。

外部样式类名说明备注
l-error-texttipType 为 text 时,错误提示信息外部样式类请使用l-error-text-class替代

表单项事件 (表单项 Events)

事件名称说明返回值备注
bind:lininput键盘输入时触发输入框当前值 value-
bind:linfocus输入框聚焦时触发输入框当前值 value-
bind:linblur输入框失去焦点时触发输入框当前值 value-
bind:linconfirm点击完成按钮时触发输入框当前值 value-
bind:linclear点击清除按钮时触发--