微信小程序模糊查询下拉弹窗,picker和input配合使用

// wxml
<view>
    <view>商户姓名</view>
    <view >
      <input type="text" value="{{merchant_name?merchant_name:''}}"  placeholder="请选择商户" bindinput="handlerInput" >
    </view>
    <picker  bindchange="bindPickerBuyersName" range-key="merchant_name" range="{{Merchlist}}">
    // range 列表数组  range-key 显示内容 bindchange 数组索引变化时触发 => 相当于你选择时触发
    </picker>
</view>

// js 部分
page({
   data:{
    merchant_name: '',  // 商户名
    Merchlist:[],  // 筛选后的数组, 刚开始和原数组一样内容
    Merchlist1:[], // 原数组  ,ajax获取商户数组的时候,赋值的

    }

    // 输入商户姓名
      handlerInput(e){
        let val = e.detail.value;
        const {Merchlist} =this.data;
        // 如果输入内容,则按照输入内容在商户数组中进行筛选,因为刚开始加载页面,该数组和原数                
        组一致
        if(val){
          let a = Merchlist.filter(item => item.merchant_name.indexOf(val) != -1)
          this.setData({Merchlist:a})
        }
        // 输入为空,或者清除,就把原数组赋值给筛选后的数组
        else{
          this.setData({Merchlist:this.data.Merchlist1})
        }

  },
    // 数组索引选项变化时触发
    bindPickerBuyersName(e) {
    let i = e.detail.value;
    let name = this.data.Merchlist[i].merchant_name;
    let id = this.data.Merchlist[i].id;
    this.setData({
      merchant_name: name,
      merch_id: id,
      goods_name: '请选择',
      Merchlist:this.data.Merchlist1
    })
    this.getGoods();
  },

})

原因: 微信小程序下拉选项的时候从下方弹出选项列表,但由于选项列表较多,加入输入某些字段进行筛选,方便查询选项。

话不多说,上代码,记录开发中的事情~~

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值