微信小程序使用vant组件的输入框搭配弹层选择器注意事项

本文介绍了在微信小程序中使用van-field和van-popup组件创建单位选择器的过程,强调了设置van-field为readonly属性而非disabled以避免键盘遮挡弹窗并保持样式正常。同时,详细展示了相关代码实现,包括onConfirm、onCancel等事件处理函数,确保用户能够顺利选择和确认单位。
摘要由CSDN通过智能技术生成

先看下页面代码:

  • wxml
<view>
    <van-cell-group >
      <van-field readonly is-link value="{{ unit }}"  catchtap="getUnit" center clearable placeholder="请选择单位" label="单位" required="true">
      </van-field>
    </van-cell-group>
      <!-- 单位弹出层 -->
	  <van-popup show="{{ showUnit }}" bind:close="onCloseUnit" position="bottom">
	    <van-picker loading="{{false}}"  show-toolbar title="单位" columns="{{ columns }}" bind:cancel="onCancel" bind:confirm="onConfirm" />
	  </van-popup>
</view>
  • js
// pages/register/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    showUnit: false, //单位弹层控制
    columns: ['南海人民医院', '佛山市一', '温州', '嘉兴', '湖州'],
    unit:''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },
  // 弹出选择单位
  getUnit(e) {
    wx.hideKeyboard();
    this.showPopup();
  },
  showPopup() {
    this.setData({
      showUnit: true
    });
  },
  // 弹窗关闭
  onCloseUnit() {
    this.setData({
      showUnit: false
    });
  },
  //单位选择确认
  onConfirm(event) {
    const {
      picker,
      value,
      index
    } = event.detail;
    this.setData({
      unit:value
    })
    this.onCloseUnit();

  },
  //单位取消选择器
  onCancel() {
    this.onCloseUnit();
    console.log('value:', value)
  },
})

效果:
在这里插入图片描述
点击:
在这里插入图片描述
选完确认:
在这里插入图片描述
在做这个效果的时候,输入框van-field 必须得加入readonly这个只读属性,不然会导致用户手机触发默认键盘遮挡你的弹窗和选择器内容影响体验. 也不要用disabled来禁用输入框,样式会变成禁用状态下的样式很难改动,只需要设置为只读即可,也不会触发手机键盘.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值