微信小程序搜索框以及简单的页面内容搜索的实现 | 您所在的位置:网站首页 › 读取本页内容的快捷键 › 微信小程序搜索框以及简单的页面内容搜索的实现 |
1 效果
先来看一下效果 本示例包含两种不同的搜索框,第一种搜索框是在最初状态下显示的搜索框,它由一个输入框input和一个表示“搜索”的图片组成。 在切换到第二种输入框时,把我们所有的数据都放在一个scroll-view中显示。当输入内容时,触发输入事件,为输入框添加bindinput属性,在事件处理函数中查询是否有数据项与输入的内容匹配。如果有,则只显示匹配的数据项。 当点击搜索框右边的图片“取消”时,图片的bindtap属性则会调用相应的函数,在这个函数里,我们把focus设置为false,这样就会切换回第一种输入框的状态,我们也可以利用focus这个标志位来控制scroll-view是否显示,都是用到wx:if=“{{focus}}”。 2.2 文本搜索的实现如果我们的数据并不是很多,那么就可以存放在页面的js文件中的data里。利用以下方法可以查找是否有数据项与输入的内容匹配: data里定义两个数组: list: [{'name':'连花清瘟胶囊','num':'1盒'},{'name':'感冒灵颗粒','num':'1盒'},{'name':'维生素C','num':'2瓶'},{'name':'蒲地蓝消炎片','num':'3盒'}], //这是搜索到的结果 list2: [{'name':'连花清瘟胶囊','num':'1盒'},{'name':'感冒灵颗粒','num':'1盒'},{'name':'维生素C','num':'2瓶'},{'name':'蒲地蓝消炎片','num':'3盒'}], //这是所有可供查询的记录在js中的查询函数: var list = this.data.list2; //先把所有数据项保存 var list2 = []; //定义一个数组 //循环取每个数据项的主键,即药品名name for(var i=0;i list2.push(list[i]); } } //到这里list2就是与搜索结果匹配的数据项了 //如果输入的关键词为空就加载原来的全部数据,不是空就加载搜索到的数据 if(e.detail.value == ""){ //加载全部 this.setData({ list: list }) } else { this.setData({ list: list2 }) } 3 附代码wxml: |
CopyRight 2018-2019 实验室设备网 版权所有 |