el-autocomplete失去焦点
时间: 2023-11-06 22:54:35 浏览: 661
el-autocomplete失去焦点后,可以通过给input元素添加blur事件来清空上一次的搜索记录。在blur事件的处理函数中,可以将搜索建议列表清空,并将高亮索引重置为-1,以达到清空搜索记录的效果。
需要注意的是,直接使用blur来清空搜索记录的话,对于模糊搜索来说,将无法选中搜索出来的数据。如果需要保留模糊搜索的功能,可以尝试使用其他方法来处理。
参考文献:
: 图二:第二次再进来就会直接出来上一次的搜索记录 **解决办法:**我看网上解决办法很少。有个博主写的这种办法加blur,在失去焦点的时候清空上一次搜索记录 //清空上次搜索记录 handleBlur(val){ // moduleName moduleNumber className classNumber // console.log(val) this.$refs[val].suggestions = []; this.$refs[val].highlightedIndex = -1; },
: !!!!!注意的是直接加blur的时候,确实是清空上一次的搜索记录了,但是对于模糊搜索,是没办法选中搜索出来的数据了****详见我已上传的视频
: **描述:**点击新增弹窗,模糊搜索如果没选择,直接关闭或者取消的话,再次点击弹窗进来会保留上次的搜索记录
相关问题
el-autocomplete 失去焦点
你可以使用`blur`事件来检测`el-autocomplete`失去焦点。当`el-autocomplete`失去焦点时,可以触发一个方法或执行一些操作。以下是一个示例代码:
```html
<el-autocomplete @blur="handleBlur" ...></el-autocomplete>
```
```javascript
methods: {
handleBlur() {
// 处理失去焦点事件
console.log('失去焦点');
// 其他操作...
}
}
```
在上面的代码中,我们在`el-autocomplete`上监听了`blur`事件,并指定了一个名为`handleBlur`的方法来处理失去焦点事件。你可以根据需要在该方法中执行相应的操作。
el-autocomplete失去焦点搜索
为了实现el-autocomplete失去焦点搜索,可以在fetch-suggestions属性中调用querySearch方法,并在该方法中添加失去焦点的事件监听器。具体实现方法如下所示:
```html
<el-autocomplete
v-model.trim="search.userName"
v-loading="autocompleteLoading"
class="inline-input control"
:fetch-suggestions="querySearch"
placeholder="请输入或搜索专员姓名"
ref="autoComplete"
@blur="handleBlur"
/>
```
```javascript
// 在methods中定义querySearch方法
querySearch(userName, cb) {
// 在方法中添加失去焦点的事件监听器
this.$refs.autoComplete.$refs.input.addEventListener('blur', () => {
this.queryCommissionerList(userName)
cb(this.commissionerList)
})
},
// 定义失去焦点的事件处理函数
handleBlur() {
this.$refs.autoComplete.$refs.input.removeEventListener('blur', () => {})
}
```
在上述代码中,我们在el-autocomplete组件中添加了blur事件监听器,并在该事件处理函数中调用了queryCommissionerList方法和回调函数cb,以获取建议列表的数据。同时,我们还定义了一个handleBlur方法,用于移除blur事件监听器,以避免重复调用queryCommissionerList方法。
阅读全文