微信小程序官方组件展示之表单组件input源码

以下将展示微信小程序之表单组件input源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。

功能描述:

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

属性说明:

WebView

Skyline

 

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 在聚焦时出现重影问题

示例代码:

JAVASCRIPT

Page({

  data: {

    focus: false,

    inputValue: ''

  },

  bindKeyInput: function (e) {

    this.setData({

      inputValue: e.detail.value

    })

  },

  bindReplaceInput: function (e) {

    var value = e.detail.value

    var pos = e.detail.cursor

    var left

    if (pos !== -1) {

      // 光标在中间

      left = e.detail.value.slice(0, pos)

      // 计算光标的位置

      pos = left.replace(/11/g, '2').length

    }

    // 直接返回对象,可以对输入进行过滤处理,同时可以控制光标的位置

    return {

      value: value.replace(/11/g, '2'),

      cursor: pos

    }

    // 或者直接返回字符串,光标在最后边

    // return value.replace(/11/g,'2'),

  },

  bindHideKeyboard: function (e) {

    if (e.detail.value === '123') {

      // 收起键盘

      wx.hideKeyboard()

    }

  }

})

WXML

<view class="page-body">

  <view class="page-section">

    <view class="weui-cells__title">可以自动聚焦的input</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input" auto-focus placeholder="将会获取焦点"/>

      </view>

    </view>

  </view>

  <view class="page-section">

    <view class="weui-cells__title">控制最大输入长度的input</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input" maxlength="10" placeholder="最大输入长度为10" />

      </view>

    </view>

  </view>

  <view class="page-section">

    <view class="weui-cells__title">实时获取输入值:{{inputValue}}</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input"  maxlength="10" bindinput="bindKeyInput" placeholder="输入同步到view中"/>

      </view>

    </view>

  </view>

  <view class="page-section">

    <view class="weui-cells__title">控制输入的input</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input"  bindinput="bindReplaceInput" placeholder="连续的两个1会变成2" />

      </view>

    </view>

  </view>

  <view class="page-section">

    <view class="weui-cells__title">控制键盘的input</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input"  bindinput="bindHideKeyboard" placeholder="输入123自动收起键盘" />

      </view>

    </view>

  </view>

  <view class="page-section">

    <view class="weui-cells__title">数字输入的input</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input" type="number" placeholder="这是一个数字输入框" />

      </view>

    </view>

  </view>

  <view class="page-section">

    <view class="weui-cells__title">密码输入的input</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input" password type="text" placeholder="这是一个密码输入框" />

      </view>

    </view>

  </view>

  <view class="page-section">

    <view class="weui-cells__title">带小数点的input</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input" type="digit" placeholder="带小数点的数字键盘"/>

      </view>

    </view>

  </view>

  <view class="page-section">

    <view class="weui-cells__title">身份证输入的input</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input" type="idcard" placeholder="身份证输入键盘" />

      </view>

    </view>

  </view>

  <view class="page-section">

    <view class="weui-cells__title">控制占位符颜色的input</view>

    <view class="weui-cells weui-cells_after-title">

      <view class="weui-cell weui-cell_input">

        <input class="weui-input" placeholder-style="color:#F76260" placeholder="占位符字体是红色的" />

      </view>

    </view>

  </view>

</view>


版权声明:本站所有内容均由互联网收集整理、上传,如涉及版权问题,请联系我们第一时间处理。

原文链接地址:https://developers.weixin.qq.com/miniprogram/dev/component/input.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容