微信小程序 picker+input组件 下拉选择框可文本框输入内容实例

最近做一个拼车小程序有一个需求:可以选择社区作为出发点,也可以输入出发点信息。
参考了一位大佬的帖子做了一个下拉选择框可手动输入的实例。
参考原文:https://blog.csdn.net/yelin042/article/details/79078068

下面是我的代码:

样式我是用weui的样式库

<!-- html -->
<view class="weui-cell__bd">
    <picker id="start_picker" bindchange="bindPickerChange" value="{{villageOptions.id}}"  range="{{villagelist}}">
        <view class="weui-input">
        {{villageOptions[start_villageIndex].name}}
        </view>
    </picker>
    <view class="section {{start_reply?'on':'off'}}">
        <input id="start_input" class="weui-input" bindblur="inputVillage" name="other" placeholder="请输入出发地点"  type="text"/>
    </view>
</view>
/* css */
.section{font-size:28rpx}
.on{display: block}
.off{display: none}
//js
Page({
	data:{
		villagelist:[],//显示小区范围
	    villageOptions: [
    		{id:0,name:'奥尔良社区'},
	    	{id:1,name:'辣翅社区'},
	    	{id:-1,name:'手动输入'}
	    ],//小区列表
	    start_villageIndex: -1,//小区picker中的index
	    start:'',//选择出发社区
	    inputStart:'',//输入出发地
	},
	//小区列表更改
   bindPickerChange(e) { 
    let that = this;
    let index = e.detail.value;
    that.pickerChange(that.data.villageOptions[index].id,index);
  },
  //输入选择框的选定
  pickerChange(id,index) { 
      if (id == -1) {//手动输入
        this.setData({
          start_reply: true,
        })
      } else {//选择社区id
        this.setData({
          start_reply: false,
        })
      }
      this.setData({
        start_villageIndex: index,
        start:id
      })
  },
  //输入出发地点
  inputVillage(e) { 
      this.setData({
        inputStart:e.detail.value,
      })
  },
})

总结:欢迎评论讨论,谢谢各位大神指点迷津

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值