ElementPlus 或ElementUI搜索框添加回车监听刷新列表,结果回车后刷新了整个页面

本文主要是介绍ElementPlus 或ElementUI搜索框添加回车监听刷新列表,结果回车后刷新了整个页面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ElementPlus 或ElementUI搜索框添加回车监听刷新列表,结果回车后刷新了整个页面

一、场景

今天在项目中遇见一个bug,在此做记录,给大家提供思路。

搜索栏进行搜索时,回车键本应该刷新数据列表,结果整个页面被刷新。

二、网上答案

在搜索栏中,如果只有一个<el-input>组件时,回车键会刷新整个页面。查看代码发现确实只有一个<el-input>组件。项目搜索部分代码如下:

 <el-form :model="queryParams" ref="queryForm" label-width="100px" @submit.native.prevent><el-row :gutter="16"><el-col :md="6"><el-form-item label="名称" prop="dictLabel"><el-inputv-model="queryParams.dictLabel"placeholder="请输入名称"clearable@keyup.enter="handleQuery"/></el-form-item></el-col><el-col :md="6" align="right" style="margin-left: auto;"><el-form-item class="search_btn_box"><el-button class="filter-item" type="primary" @click="handleQuery">搜索</el-button><el-button class="filter-item" style="margin-left: 8px;" @click="resetQuery">重置</el-button></el-form-item></el-col></el-row></el-form>

三、实测解决方案

<el-form>组件处添加@submit.native.prevent,参考上述代码。
VUE2,VUE3应该都是一样的,我这里用的是ElementPlus+VUE3

四、个人见解

@submit.native.prevent是阻止表单默认提交事件,当只有一个<el-input>组件,回车键会默认提交表单。

本来以为是事件的冒泡引起,后来尝试发现不是。

这篇关于ElementPlus 或ElementUI搜索框添加回车监听刷新列表,结果回车后刷新了整个页面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1003837

相关文章

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

JavaScript全屏,监听页面是否全屏

在JavaScript中,直接监听浏览器是否进入全屏模式并不直接支持,因为全屏API主要是关于请求和退出全屏模式的,而没有直接的监听器可以告知页面何时进入或退出全屏模式。但是,你可以通过在你的代码中跟踪全屏状态的改变来模拟这个功能。 以下是一个基本的示例,展示了如何使用全屏API来请求全屏模式,并在请求成功或失败时更新一个状态变量: javascriptlet isInFullscreen =

ABAP怎么把传入的参数刷新到内表里面呢?

1.在执行相关的功能操作之前,优先执行这一段代码,把输入的数据更新入内表里面 DATA: lo_guid TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = lo_guid.CALL METHOD lo_guid->check_changed_data.CALL M

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在

vue+elementUI下拉框联动显示

<el-row><el-col :span="12"><el-form-item label="主账号:" prop="partyAccountId" :rules="[ { required: true, message: '主账号不能为空'}]"><el-select v-model="detailForm.partyAccountId" filterable placeholder="

vue+elementui分页输入框回车与页面中@keyup.enter事件冲突解决

解决这个问题的思路只要判断事件源是哪个就好。el分页的回车触发事件是在按下时,抬起并不会再触发。而keyup.enter事件是在抬起时触发。 so,找不到分页的回车事件那就拿keyup.enter事件搞事情。只要判断这个抬起事件的$event中的锚点样式判断不等于分页特有的样式就可以了 @keyup.enter="allKeyup($event)" //页面上的//js中allKeyup(e

vue子路由回退后刷新页面方式

最近碰到一个小问题,页面中含有 <transition name="router-slid" mode="out-in"><router-view></router-view></transition> 作为子页面加载显示的地方。但是一般正常子路由通过 this.$router.go(-1) 返回到上一层原先的页面中。通过路由历史返回方式原本父页面想更新数据在created 跟mounted

vue+elementui--$message提示框被dialog遮罩层挡住问题解决

最近碰到一个先执行this.$message提示内容,然后接着弹出dialog带遮罩层弹框。那么问题来了,message提示框会默认被dialog遮罩层挡住,现在就是要解决这个问题。 由于都是弹框,问题肯定是出在z-index比重问题。由于用$message方式是写在js中而不是写在html中所以不是很好直接去改样式。 不过好在message组件中提供了customClass 属性,我们可以利用

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

Python分解多重列表对象,isinstance实现

“”“待打印的字符串列表:['ft','bt',['ad',['bm','dz','rc'],'mzd']]分析可知,该列表内既有字符对象,又有列表对象(Python允许列表对象不一致)现将所有字符依次打印并组成新的列表”“”a=['ft','bt',['ad',['bm','dz','rc'],'mzd']]x=[]def func(y):for i in y:if isinst