Textarea 多行输入框

多行输入框。

使用指南

在 page.json 中引入组件

  1. {
  2. "navigationBarTitleText": "Textarea",
  3. "usingComponents": {
  4. "wux-cell-group": "../../dist/cell-group/index",
  5. "wux-cell": "../../dist/cell/index",
  6. "wux-textarea": "../../dist/textarea/index"
  7. }
  8. }

示例

!> Input 组件建议用 Cell 组件包裹使用。

  1. <view class="page">
  2. <view class="page__hd">
  3. <view class="page__title">Textarea</view>
  4. <view class="page__desc">多行输入框</view>
  5. </view>
  6. <view class="page__bd">
  7. <wux-cell-group title="Normal Usage">
  8. <wux-cell hover-class="none">
  9. <wux-textarea placeholder="No label" />
  10. </wux-cell>
  11. <wux-cell hover-class="none">
  12. <wux-textarea label="First name" />
  13. </wux-cell>
  14. <wux-cell hover-class="none">
  15. <wux-textarea label="Last name" placeholder="Input your last name" />
  16. </wux-cell>
  17. </wux-cell-group>
  18. <wux-cell-group title="Auto / Fixed height">
  19. <wux-cell hover-class="none">
  20. <wux-textarea autoHeight label="First name" />
  21. </wux-cell>
  22. <wux-cell hover-class="none">
  23. <wux-textarea rows="3" label="Last name" placeholder="Input your last name" />
  24. </wux-cell>
  25. </wux-cell-group>
  26. <wux-cell-group title="Count">
  27. <wux-cell hover-class="none">
  28. <wux-textarea hasCount rows="3" cursorSpacing="80" placeholder="Count..." />
  29. </wux-cell>
  30. </wux-cell-group>
  31. <wux-cell-group title="Custom title">
  32. <wux-cell hover-class="none">
  33. <wux-textarea>First name</wux-textarea>
  34. </wux-cell>
  35. <wux-cell hover-class="none">
  36. <wux-textarea placeholder="Input your last name">
  37. <image style="width: 20px; height: 20px; margin-right: 5px" src="https://wux.cdn.cloverstd.com/logo.png" />
  38. </wux-textarea>
  39. </wux-cell>
  40. </wux-cell-group>
  41. <wux-cell-group title="Show clear">
  42. <wux-cell hover-class="none">
  43. <wux-textarea clear label="First name" />
  44. </wux-cell>
  45. <wux-cell hover-class="none">
  46. <wux-textarea clear label="Last name" placeholder="Input your last name" />
  47. </wux-cell>
  48. </wux-cell-group>
  49. <wux-cell-group title="Extra">
  50. <wux-cell hover-class="none">
  51. <wux-textarea label="Dollar" defaultValue="1024" extra="$" />
  52. </wux-cell>
  53. <wux-cell hover-class="none">
  54. <wux-textarea label="RMB" defaultValue="1024">
  55. <view slot="footer" style="margin-left: 5px"></view>
  56. </wux-textarea>
  57. </wux-cell>
  58. </wux-cell-group>
  59. <wux-cell-group title="Disabled">
  60. <wux-cell hover-class="none">
  61. <wux-textarea disabled label="First name" />
  62. </wux-cell>
  63. <wux-cell hover-class="none">
  64. <wux-textarea disabled label="Last name" defaultValue="1024" />
  65. </wux-cell>
  66. </wux-cell-group>
  67. <wux-cell-group title="Controlled">
  68. <wux-cell hover-class="none">
  69. <wux-textarea label="Uncontrolled" defaultValue="1024" />
  70. </wux-cell>
  71. <wux-cell hover-class="none">
  72. <wux-textarea label="Controlled" value="{{ value }}" controlled bind:change="onChange" bind:focus="onFocus" bind:blur="onBlur" bind:confirm="onConfirm" bind:clear="onClear" />
  73. </wux-cell>
  74. </wux-cell-group>
  75. <wux-cell-group title="Error">
  76. <wux-cell hover-class="none">
  77. <wux-textarea label="Tel number" value="{{ value }}" controlled error="{{ error }}" bind:change="onChange" bind:focus="onFocus" bind:blur="onBlur" bind:confirm="onConfirm" bind:clear="onClear" bind:error="onError" />
  78. </wux-cell>
  79. </wux-cell-group>
  80. </view>
  81. </view>
  1. const isTel = (value) => !/^1[34578]\d{9}$/.test(value)
  2. Page({
  3. onChange(e) {
  4. console.log('onChange', e)
  5. this.setData({
  6. error: isTel(e.detail.value),
  7. value: e.detail.value,
  8. })
  9. },
  10. onFocus(e) {
  11. this.setData({
  12. error: isTel(e.detail.value),
  13. })
  14. console.log('onFocus', e)
  15. },
  16. onBlur(e) {
  17. this.setData({
  18. error: isTel(e.detail.value),
  19. })
  20. console.log('onBlur', e)
  21. },
  22. onConfirm(e) {
  23. console.log('onConfirm', e)
  24. },
  25. onClear(e) {
  26. console.log('onClear', e)
  27. this.setData({
  28. error: true,
  29. value: '',
  30. })
  31. },
  32. onError() {
  33. wx.showModal({
  34. title: 'Please enter 11 digits',
  35. showCancel: !1,
  36. })
  37. },
  38. })

视频演示

Textarea

API

Textarea props

参数 类型 描述 默认值
prefixCls string 自定义类名前缀 wux-textarea
label string 左侧内容 -
extra string 右侧内容 -
defaultValue string 默认值,当 controlledfalse 时才生效 -
value string 当前值,当 controlledtrue 时才生效 -
controlled boolean 是否受控 说明文档 false
placeholder string 输入框为空时占位符 -
placeholder-style string,object 指定 placeholder 的样式 -
placeholder-class string 指定 placeholder 的样式类 input-placeholder
disabled boolean 是否禁用 false
maxlength number 最大输入长度,设置为 -1 的时候不限制最大长度 140
autoHeight boolean 是否自动增高,设置 auto-height 时,style.height 不生效 false
cursor-spacing number 指定光标与键盘的距离,单位 px 11
focus boolean 获取焦点 false
cursor number 指定focus时的光标位置 -1
showConfirmBar boolean 是否显示键盘上方带有”完成“按钮那一栏 true
selection-start number 光标起始位置,自动聚集时有效,需与selection-end搭配使用 -1
selection-end number 光标结束位置,自动聚集时有效,需与selection-start搭配使用 -1
adjust-position boolean 键盘弹起时,是否自动上推页面 true
rows number 行数 1
hasCount boolean 是否显示计数功能 false
clear boolean 是否显示清除图标,当 disabledfalse 时才生效 false
error boolean 是否显示报错图标 false
bind:linechange function 输入框行数变化时调用 -
bind:change function 键盘输入时触发 -
bind:focus function 输入框聚焦时触发 -
bind:blur function 输入框失去焦点时触发 -
bind:confirm function 点击完成按钮时触发 -
bind:clear function 点击清除图标时触发 -
bind:error function 点击报错图标时触发 -

Textarea slot

名称 描述
- 自定义左侧内容

Textarea externalClasses

名称 描述
wux-class 根节点样式类