laravel - Laravel + Vue Js中输入字段为空时如何清除自动完成结果?
问题描述
请在自动完成搜索栏上工作,如果输入字段为空,请清除搜索。目前,能够显示结果,但当我清除该字段时,我仍然在我的 div 中看到搜索结果。当我清除搜索输入时,我希望 div 为空。请提供任何帮助
下面是vue代码
<template>
<div style="margin-top:8px">
<input type="text" v-model="form.user" v-on:keyup="show" class="form-control">
<div class="panel-footer" v-if="results.length">
<ul v-for="result in results" :key="result.id">
<li>{{result.name}}</li>
</ul>
</div>
</div>
</template>
<script>
export default {
data(){
return{
form:{
user: ""
},
results: []
}
},
methods:{
show(){
axios.post('/users', this.form).then((res)=>{
this.results = res.data
})
}
}
}
</script>
控制器
public function getUser(Request $request){
$qry = $request->input('user');
$all_user = DB::table('users')
->where("name", "like", "%" . $qry . '%')
->get();
return $all_user;
}
解决方案
仅当results
数组有项目时才会呈现 div。因此,当this.form.user
为空时,您还应该重置this.results
. 您可以为此使用监视功能。
data
在和之间添加此代码methods
。
watch: {
form: {
handler(val){
if(this.form.user == ""){
this.results = [];
}
},
deep: true
}
}
推荐阅读
- ssh - 使用 openssl libcrypto 解析新的 openssh-key-v1 格式
- c# - 无法弄清楚如何从另一个脚本访问 int
- sql - 返回具有相同 ref_id 的每个元素的最后一个数量
- python - python:在Numpy数组数组中的每个数组末尾填充零
- unity3d - 如何在一定空间内放置固定宽度的重叠元素?
- javascript - 如何使用液体模板语言在循环中添加锚标记?
- asp.net-core - Aspnet Core - web.config 授权
- android - React-Native 如何在异步功能完成后显示警报?
- kubernetes - 使用 ArangoDB Kubernetes Operator 的 Horizontal Pod Autoscaler
- docker - 挂载一个卷以在 jenkinsfile 中共享 docker 容器的结果