codecamp

支付宝小程序扩展表单 文本输入·InputItem

文本输入。

说明:

  • 输入区内容不折行,如用户输入的字数超出显示区,输入框内的文字可左右滑动;
  • 如无特殊情况,清空按钮在框内有内容且获得焦点时默认出现。

扫码体验

示例代码

{


  "defaultTitle": "input-item",


  "usingComponents":{


    "list": "mini-ali-ui/es/list/index",


    "input-item": "mini-ali-ui/es/input-item/index",


    "am-icon": "mini-ali-ui/es/am-icon/index"


  }


}
<view>


  <view style="margin-top: 10px;"></view>


  <list>


    <input-item data-field="cardNo" 


      clear="{{false}}" 


      value="{{cardNo}}" 


      className="dadada" 


      placeholder="银行卡号" 


      onInput="onItemInput" 


      onBlur="onItemBlur" 


      onConfirm="onItemConfirm" 


      controlled="{{true}}"
      onClear="onClear">


      卡号


      <view slot="extra" class="extra" onTap="onExtraTap"></view>


    </input-item>


    <input-item data-field="name" 


      placeholder="姓名" 


      type="text" 


      value="{{name}}" 


      clear="{{true}}" 


      onInput="onItemInput" 


      onClear="onClear">姓名</input-item>


      <input-item data-field="password" password="{{true}}" 


      placeholder="密码">密码</input-item>


    <input-item data-field="layerShow1" 


      placeholder="layer 为 vertical 的排列" 


      type="text" 


      layer="vertical"


      value="{{layerShow1}}" 


      clear="{{true}}" 


      onInput="onItemInput" 


      onClear="onClear">


      竖向表单


      <view onTap="onExtraTap" slot="extra">


        <am-icon type="phone-book_" size="24" color="#1677ef"></am-icon>


      </view>


    </input-item>


    <input-item data-field="layerShow2"


      placeholder="layer 为 vertical 的排列" 


      type="text" 


      layer="vertical"


      value="{{layerShow2}}" 


      clear="{{true}}" 


      onInput="onItemInput" 


      onClear="onClear">


      竖向表单


    </input-item>


    <input-item data-field="layerShow3" 


      placeholder="layer 为 vertical 的排列" 


      type="text" 


      layer="vertical"


      disabled="{{true}}"


      value="{{layerShow3}}" 


      clear="{{true}}" 


      onInput="onItemInput" 


      onClear="onClear">


      竖向表单


      <view onTap="onExtraTap" slot="extra">


        <am-icon type="phone-book_" size="24" color="#1677ef"></am-icon>


      </view>


    </input-item>


    <input-item data-field="remark" placeholder="备注"></input-item>


  </list>


</view>
Page({


  data: {


    cardNo: '1234****',


    name: '',


    layerShow1: '',


    layerShow2: '垂直输入框的布局',


    layerShow3: 'disabled 状态的 input',


  },


  onExtraTap() {


    my.alert({


      content: 'extra tapped',


    });


  },


  onItemInput(e) {


    this.setData({


      [e.target.dataset.field]: e.detail.value,


    });


  },


  onItemFocus() {},


  onItemBlur() {},


  onItemConfirm() {},


  onClear(e) {


    this.setData({


      [e.target.dataset.field]: '',


    });


  },


  onSend() {


    my.alert({


      title: 'verify code sent',


    });


  },


});

.extra {


  background-image: url('https://gw.alipayobjects.com/zos/rmsportal/dOfSJfWQvYdvsZiJStvg.svg');


  background-size: contain;


  background-repeat: no-repeat;


  background-position: right center;


  opacity: 0.2;


  height: 22px;


  width: 22px;


}

属性

属性 类型 默认值 描述 最低版本
className String - 自定义的 class。 -
labelCls String - 自定义 label 的 class。 -
inputCls String - 自定义 input 的 class。 -
last Boolean false 是否最后一行。可选值:true、false。 -
value String - 初始内容。 -
name String - 组件名字,用于表单提交获取数据。 -
type String text input 的类型,可选值:text,number,idcard,digit。 -
password Boolean false 是否是密码类型。可选值:true、false。 -
placeholder String - 占位符。 -
placeholderStyle String - 指定 placeholder 的样式。 -
placeholderClass String - 指定 placeholder 的样式类。 -
disabled Boolean false 是否禁用。可选值:true、false。 -
maxlength Number 140 最大长度。 -
focus Boolean false 获取焦点。可选值:true、false。 -
clear Boolean true 是否带清除功能,仅 disabled 为 false 才生效。可选值:true、false。 -
onInput (e: Object) => void - 键盘输入时触发 input 事件。 -
onConfirm (e: Object) => void - 点击键盘完成时触发。 -
onFocus (e: Object) => void - 聚焦时触发。 -
onBlur (e: Object) => void - 失去焦点时触发。 -
onClear () => void - 点击清除 icon 时触发。 -
layer String - 文本输入框是否为垂直排列,vertical 时为垂直排列,空值为横向排列。可选值:vertical。 1.0.4
controlled Boolean false 是否为受控组件。详情请参见 input 组件 1.0.9

type 属性值介绍

  • text: 字符输入框
  • number: 纯数字输入框( 0-9 之间的数字)
  • idcard:身份证输入框( 0-9 之间的数字,以及字符 x)
  • digit:数字输入框,( 0-9 之间的数字,以及小数点 . 字符,可用于含有小数的数字)

注意:type 的属性值影响的是真机中的键盘类型,在模拟器中并不一定会有效果。

slots

slotname 说明 必填
extra 用于渲染 input-item 项右边说明。

常见问题

为何 setData 数据为空时,断点 money 值已经置空,但是在输入框还是显示 0?

this.setData 设置 data 为空时,不会渲染页面,建议使用组件的 clear。

支付宝小程序引导组件 头像·Avatar
支付宝小程序扩展表单 验证码输入框·VerifyCode
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }