template里代码段:
<div class="search-info">
<el-input type="text" auto-complete="off" placeholder="请输入GroupName" v-model="searchVal"
class="input"
@focus="searchInput"></el-input>
<el-button class="small-edit fl" @click="searchApp"> 搜索 </el-button>
</div>
script 里的代码段:
export default{
data(){
datas: [], //所有数据
viewData: [], // 展示的数据
searchVal: ''
},
created (){
this.getData()
}
methods: {
getData: function (){ //获取接口数据,渲染到页面表格
},
searchApp: function (){
let self = this
let dataList = [] //符合查找的数据
this.datas.forEach( function (element) {
if(element.name.indexOf(self.searchVal) !== -1) {
dataList.push(element)
}
})
this.viewData = dataList
return this.viewData
},
searchInput: function(){
if(document.querySelector('input') == document.activeElement) {
this.searchApp(this.searchVal.trim())
}
}
},
watch: {
searchVal: function(){
this.searchInput()
}
}
}
在这里再把之前普通html文件的输入框模糊查询给粘出来:
<body>
<input id="inputv" placeholder="搜索...">
<ul>
<li>a</li>
<li>a1</li>
<li>a11</li>
<li>a111</li>
<li>a1111</li>
<li>b</li>
<li>b1</li>
<li>b11</li>
<li>b111</li>
<li>b1111</li>
<li>c</li>
<li>c1</li>
<li>c11</li>
<li>c111</li>
<li>c1111</li>
</ul>
<script>
var inputBtn = document.getElementById("inputv");
var li = document.getElementsByTagName('li');
inputBtn.onkeyup = search; //监听按键
function search(){
var inputMsg = inputBtn.value; //string
for(var i = 0; i < li.length; i++){
var liMsg = li[i].innerHTML; //string
var macthStr = liMsg.indexOf(inputMsg);
if(inputMsg != 0){
if(macthStr){
li[i].style.display = "block";
}else{
li[i].style.display = "none";
}
}
}
}
</script>
</body>
本文介绍了如何在Vue项目中实现输入框的模糊查询功能,提供了模板和脚本中的关键代码段,帮助开发者理解并应用到自己的项目中。
509

被折叠的 条评论
为什么被折叠?



