微信小程序 输入框 input 组件

港控/mmm° 2021-09-08 01:10 951阅读 0赞

完整微信小程序(Java后端) 技术贴目录清单页面(必看)

输入框。该组件是原生组件,使用时请注意相关限制














































































































































































































属性 类型 默认值 必填 说明 最低版本
value string 输入框的初始内容 1.0.0
type string text input 的类型 1.0.0
password boolean false 是否是密码类型 1.0.0
placeholder string 输入框为空时占位符 1.0.0
placeholder-style string 指定 placeholder 的样式 1.0.0
placeholder-class string input-placeholder 指定 placeholder 的样式类 1.0.0
disabled boolean false 是否禁用 1.0.0
maxlength number 140 最大输入长度,设置为 -1 的时候不限制最大长度 1.0.0
cursor-spacing number 0 指定光标与键盘的距离,取 input 距离底部的距离和 cursor-spacing 指定的距离的最小值作为光标与键盘的距离 1.0.0
auto-focus boolean false (即将废弃,请直接使用 focus )自动聚焦,拉起键盘 1.0.0
focus boolean false 获取焦点 1.0.0
confirm-type string done 设置键盘右下角按钮的文字,仅在type=’text’时生效 1.1.0
always-embed boolean false 强制 input 处于同层状态,默认 focus 时 input 会切到非同层状态 (仅在 iOS 下生效) 2.10.4
confirm-hold boolean false 点击键盘右下角按钮时是否保持键盘不收起 1.1.0
cursor number 指定focus时的光标位置 1.5.0
selection-start number -1 光标起始位置,自动聚集时有效,需与selection-end搭配使用 1.9.0
selection-end number -1 光标结束位置,自动聚集时有效,需与selection-start搭配使用 1.9.0
adjust-position boolean true 键盘弹起时,是否自动上推页面 1.9.90
hold-keyboard boolean false focus时,点击页面的时候不收起键盘 2.8.2
bindinput eventhandle 键盘输入时触发,event.detail = {value, cursor, keyCode},keyCode 为键值,2.1.0 起支持,处理函数可以直接 return 一个字符串,将替换输入框的内容。 1.0.0
bindfocus eventhandle 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度,在基础库 1.9.90 起支持 1.0.0
bindblur eventhandle 输入框失去焦点时触发,event.detail = {value: value} 1.0.0
bindconfirm eventhandle 点击完成按钮时触发,event.detail = {value: value} 1.0.0
bindkeyboardheightchange eventhandle 键盘高度发生变化的时候触发此事件,event.detail = {height: height, duration: duration} 2.7.0

type 的合法值































说明 最低版本
text 文本输入键盘
number 数字输入键盘
idcard 身份证输入键盘
digit 带小数点的数字键盘

confirm-type 的合法值




































说明 最低版本
send 右下角按钮为“发送”
search 右下角按钮为“搜索”
next 右下角按钮为“下一个”
go 右下角按钮为“前往”
done 右下角按钮为“完成”

Bug & Tip

  1. tip: confirm-type的最终表现与手机输入法本身的实现有关,部分安卓系统输入法和第三方输入法可能不支持或不完全支持
  2. tip : input 组件是一个原生组件,字体是系统字体,所以无法设置 font-family
  3. tip : 在 input 聚焦期间,避免使用 css 动画
  4. tip : 对于将 input 封装在自定义组件中、而 form 在自定义组件外的情况, form 将不能获得这个自定义组件中 input 的值。此时需要使用自定义组件的 内置 behaviors wx://form-field
  5. tip : 键盘高度发生变化,keyboardheightchange事件可能会多次触发,开发者对于相同的height值应该忽略掉
  6. bug : 微信版本 6.3.30, focus 属性设置无效
  7. bug : 微信版本 6.3.30, placeholder 在聚焦时出现重影问题

示例代码

在开发者工具中预览效果

index.wxml

  1. <view class="page-body">
  2. <view class="page-section">
  3. <view class="weui-cells__title">可以自动聚焦的input</view>
  4. <view class="weui-cells weui-cells_after-title">
  5. <view class="weui-cell weui-cell_input">
  6. <input class="weui-input" auto-focus placeholder="将会获取焦点"/>
  7. </view>
  8. </view>
  9. </view>
  10. <view class="page-section">
  11. <view class="weui-cells__title">控制最大输入长度的input</view>
  12. <view class="weui-cells weui-cells_after-title">
  13. <view class="weui-cell weui-cell_input">
  14. <input class="weui-input" maxlength="10" placeholder="最大输入长度为10" />
  15. </view>
  16. </view>
  17. </view>
  18. <view class="page-section">
  19. <view class="weui-cells__title">实时获取输入值:{
  20. {inputValue}}</view>
  21. <view class="weui-cells weui-cells_after-title">
  22. <view class="weui-cell weui-cell_input">
  23. <input class="weui-input" maxlength="10" bindinput="bindKeyInput" placeholder="输入同步到view中"/>
  24. </view>
  25. </view>
  26. </view>
  27. <view class="page-section">
  28. <view class="weui-cells__title">控制输入的input</view>
  29. <view class="weui-cells weui-cells_after-title">
  30. <view class="weui-cell weui-cell_input">
  31. <input class="weui-input" bindinput="bindReplaceInput" placeholder="连续的两个1会变成2" />
  32. </view>
  33. </view>
  34. </view>
  35. <view class="page-section">
  36. <view class="weui-cells__title">控制键盘的input</view>
  37. <view class="weui-cells weui-cells_after-title">
  38. <view class="weui-cell weui-cell_input">
  39. <input class="weui-input" bindinput="bindHideKeyboard" placeholder="输入123自动收起键盘" />
  40. </view>
  41. </view>
  42. </view>
  43. <view class="page-section">
  44. <view class="weui-cells__title">数字输入的input</view>
  45. <view class="weui-cells weui-cells_after-title">
  46. <view class="weui-cell weui-cell_input">
  47. <input class="weui-input" type="number" placeholder="这是一个数字输入框" />
  48. </view>
  49. </view>
  50. </view>
  51. <view class="page-section">
  52. <view class="weui-cells__title">密码输入的input</view>
  53. <view class="weui-cells weui-cells_after-title">
  54. <view class="weui-cell weui-cell_input">
  55. <input class="weui-input" password type="text" placeholder="这是一个密码输入框" />
  56. </view>
  57. </view>
  58. </view>
  59. <view class="page-section">
  60. <view class="weui-cells__title">带小数点的input</view>
  61. <view class="weui-cells weui-cells_after-title">
  62. <view class="weui-cell weui-cell_input">
  63. <input class="weui-input" type="digit" placeholder="带小数点的数字键盘"/>
  64. </view>
  65. </view>
  66. </view>
  67. <view class="page-section">
  68. <view class="weui-cells__title">身份证输入的input</view>
  69. <view class="weui-cells weui-cells_after-title">
  70. <view class="weui-cell weui-cell_input">
  71. <input class="weui-input" type="idcard" placeholder="身份证输入键盘" />
  72. </view>
  73. </view>
  74. </view>
  75. <view class="page-section">
  76. <view class="weui-cells__title">控制占位符颜色的input</view>
  77. <view class="weui-cells weui-cells_after-title">
  78. <view class="weui-cell weui-cell_input">
  79. <input class="weui-input" placeholder-style="color:#F76260" placeholder="占位符字体是红色的" />
  80. </view>
  81. </view>
  82. </view>
  83. </view>

index.js

  1. Page({
  2. data: {
  3. focus: false,
  4. inputValue: ''
  5. },
  6. bindKeyInput: function (e) {
  7. this.setData({
  8. inputValue: e.detail.value
  9. })
  10. },
  11. bindReplaceInput: function (e) {
  12. var value = e.detail.value
  13. var pos = e.detail.cursor
  14. var left
  15. if (pos !== -1) {
  16. // 光标在中间
  17. left = e.detail.value.slice(0, pos)
  18. // 计算光标的位置
  19. pos = left.replace(/11/g, '2').length
  20. }
  21. // 直接返回对象,可以对输入进行过滤处理,同时可以控制光标的位置
  22. return {
  23. value: value.replace(/11/g, '2'),
  24. cursor: pos
  25. }
  26. // 或者直接返回字符串,光标在最后边
  27. // return value.replace(/11/g,'2'),
  28. },
  29. bindHideKeyboard: function (e) {
  30. if (e.detail.value === '123') {
  31. // 收起键盘
  32. wx.hideKeyboard()
  33. }
  34. }
  35. })

运行效果:

\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NHI6BhQI-1622384290616)(image-20210529104322224.png)\]

微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

发表评论

表情:
评论列表 (有 0 条评论,951人围观)

还没有评论,来说两句吧...

相关阅读

    相关 程序input传参

    在微信小程序中原生input组件无法直接传参,但可以通过自定义属性的方式达成效果 <!-- 自定义属性的命名格式为“data-自定义名字” --> <inpu