利用微信小程序weui库的SearchBar组件实现简易搜索功能

鉴于搜索对象的数据类型简单,简单list就可以处理,故直接存在下面的hosList里面;当然一般还是应该单拿出个文件来存数据;
先上index.js代码:

var value = '';
var hosList=[];
Page({
  data: {
      inputShowed: false,
      inputVal: "",

    },
   
  onLoad() {
      this.setData({
          search: this.search.bind(this),
      })   
  },
  search: function (value) {
    var fitList = [];
    var result = new Object();
    result.text = '';
    result.value = 0;
    var resultList=[];
    hosList= [
    //此处放置搜索结果的列表数据
    '当时明月在,曾照彩云归',
    '去年春恨却来时。落花人独立,微雨燕双飞。'
      ]
      var indexList=[];
      return new Promise((resolve, reject) => {
          for (var i of hosList){
            if(i.search(value)!= -1){
              fitList.push(i);//将匹配到的搜索结果推到fitList里
            }
          }
          
          //调整搜索结果列表fitList的格式
          //类似于 [{text: '搜索结果', value: 1}, {text: '搜索结果2', value: 2}]
            //}, 200)
          for (i of fitList){
            result.text = i;
            resultList.push(result);
            result = {};
          }
      console.log(resultList);//返回搜索结果
          resolve(resultList);
      })
  },
  selectResult: function (e) {
      console.log('select result', e.detail)
  },
});

json

{
  "usingComponents": {"mp-searchbar": "weui-miniprogram/searchbar/searchbar"},
  "navigationBarTitleText": "搜索页面"
}

wxml

<view class="page">
    <view class="page__hd">
        <view class="page__title">SearchBar</view>
        <view class="page__desc">搜索栏</view>
    </view>
    <view class="page__bd">
        <mp-searchbar bindselectresult="selectResult" search="{{search}}"></mp-searchbar>
    </view>
</view>

wxss

page {
  background-color: #dedede;
  padding: 20rpx;
  width: auto;//这里最好调一下,不然组件可能会偏
}

请参考SearchBar组件官网文档

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
以下是一个简单的微信小程序 weui 实现单选投票的代码示例: 1. 在 app.json 文件中添加页面路径: ``` { "pages": [ "pages/index/index", "pages/vote/vote" ], "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle": "black" } } ``` 2. 在 index 页面中添加一个跳转到投票页面的按钮: ``` <view class="container"> <button class="weui-btn" bindtap="goToVote">去投票</button> </view> ``` 3. 在 index 页面的 js 文件中添加 goToVote 函数: ``` Page({ goToVote: function() { wx.navigateTo({ url: '/pages/vote/vote' }) } }) ``` 4. 在 vote 页面中添加一个 radio-group 和若干 radio 控件: ``` <view class="container"> <form bindsubmit="submitVote"> <view class="weui-cells weui-cells_radio"> <label class="weui-cell weui-check__label" for="option1"> <view class="weui-cell__bd">选项1</view> <view class="weui-cell__ft"> <radio class="weui-check" name="options" value="option1" checked="true"></radio> </view> </label> <label class="weui-cell weui-check__label" for="option2"> <view class="weui-cell__bd">选项2</view> <view class="weui-cell__ft"> <radio class="weui-check" name="options" value="option2"></radio> </view> </label> <label class="weui-cell weui-check__label" for="option3"> <view class="weui-cell__bd">选项3</view> <view class="weui-cell__ft"> <radio class="weui-check" name="options" value="option3"></radio> </view> </label> </view> <button class="weui-btn weui-btn_primary" form-type="submit">投票</button> </form> </view> ``` 5. 在 vote 页面的 js 文件中添加 submitVote 函数: ``` Page({ submitVote: function(e) { var option = e.detail.value.options; wx.showModal({ title: '投票结果', content: '您选择了' + option, showCancel: false }) } }) ``` 这样就完成了一个简单的单选投票的微信小程序 weui 实现
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

today__present

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值