写一个微信小程序代码片段,实现从数组中搜索数据的功能,要求边输入边搜索,直接将搜索结果显示在页面上。用户点击该条搜索结果则将该结果填入文本框中。
时间: 2024-02-06 08:12:39 浏览: 124
微信小程序实现搜索功能
下面是一个简单的微信小程序代码片段,实现从数组中搜索数据的功能:
wxml代码:
```
<view class="container">
<input class="search-input" placeholder="输入搜索内容" bindinput="onInput" />
<view class="search-result">
<block wx:for="{{searchResult}}" wx:key="index">
<view class="result-item" bindtap="fillInput">
{{item}}
</view>
</block>
</view>
</view>
```
js代码:
```
Page({
data: {
searchResult: [],
searchContent: '',
dataList: ['苹果', '香蕉', '橙子', '西瓜', '葡萄', '柠檬']
},
onInput: function (e) {
let searchContent = e.detail.value;
let searchResult = [];
let dataList = this.data.dataList;
for (let i = 0; i < dataList.length; i++) {
if (dataList[i].indexOf(searchContent) >= 0) {
searchResult.push(dataList[i]);
}
}
this.setData({
searchResult: searchResult,
searchContent: searchContent
});
},
fillInput: function (e) {
let value = e.currentTarget.dataset.value;
this.setData({
searchContent: value,
searchResult: []
});
}
})
```
说明:
1. 首先在wxml中定义了一个输入框和一个显示搜索结果的区域;
2. 在js中定义了一个data对象,包括三个属性:searchResult表示搜索结果,searchContent表示搜索框中输入的内容,dataList表示要搜索的数组;
3. 在onInput函数中,每次输入框内容改变时,将搜索框中输入的内容与数组中的元素进行匹配,匹配成功的元素添加到searchResult数组中,并且将搜索框中输入的内容保存到searchContent属性中,最后通过setData函数更新searchResult和searchContent属性;
4. 在fillInput函数中,当用户点击搜索结果时,将该搜索结果的值赋给searchContent属性,并且将searchResult数组清空,最后通过setData函数更新searchContent和searchResult属性。
阅读全文