elementUI中input回车触发页面刷新问题和解决方法

这篇具有很好参考价值的文章主要介绍了elementUI中input回车触发页面刷新问题和解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天在做项目的的时候发现创建的el-form表单内单个el-input框输入值后点回车会导致页面刷新的问题,于是好奇心驱使下去查了vue中的form表单内的单input框也会跳转页面也就是页面刷新的问题。查了下

原因:elementUI中的当el-form表单只存在一个el-input框时,会触发表单的默认提交事件,element也给出了解释

:::tip W3C 标准中有如下规定:

When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form.

 即:当一个 form 元素中只有一个输入框时,在该输入框中按下回车应提交该表单。

例:el-form内单el-input触发页面刷新

<el-form :model="form" ref="form" label-width="200px" class="form">
  <el-form-item
    label="姓名"
    prop="name"
  >
    <el-input v-model.number="form.name"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submit('form')">提交</el-button>
    <el-button @click="reset('form')">重置</el-button>
  </el-form-item>
</el-form>

elementUI中input回车触发页面刷新问题和解决方法

 解决方法:element也给出了解决方法

如果希望阻止这一默认行为,可以在 <el-form> 标签上添加 @submit.native.prevent。 :::

<el-form 
  :model="form" 
  ref="form" 
  label-width="200px" 
  class="form" 
  @submit.native.prevent
>
  <el-form-item
    label="姓名"
    prop="name"
  >
    <el-input v-model.number="form.name"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submit('form')">提交</el-button>
    <el-button @click="reset('form')">重置</el-button>
  </el-form-item>
</el-form>

 官方给出的只是阻止了这一默认行为。当需要回车来提交表单时可以通过下面这种操作来进行解决

<el-form 
  :model="form" 
  ref="form" 
  label-width="200px" 
  class="form" 
  @submit.native.prevent="() => submit('form')"
>
  <el-form-item
    label="姓名"
    prop="name"
  >
    <el-input v-model.number="form.name"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" native-type="submit">提交</el-button>
    <el-button @click="reset('form')">重置</el-button>
  </el-form-item>
</el-form>



//注意事项
el-form 方式 确保使用 @submit.native.prevent 阻止原生事件,执行方法为搜索按钮按click事件
[确保方法调用不丢参数]
搜索按钮 - 确保被包裹在 el-form 中
搜索按钮 - 确保按钮的click事件去除掉
搜索按钮 - 确保增加 native-type="submit" 属性

 注意事项:那elementUI的解决了, 原生的form表单的单input和form包裹el-input回车刷新的问题也一样可以解决

1.在form表单内再增加一个隐藏的input框

①通过hidden定义隐藏的输入字段

<form>
  <input type="hidden" value="1"></input>
</form>

②通过css样式进行隐藏

<form>
  <input type="text" style="display:none"></input>
</form>

2.去掉输入框的回车事件(根据需求来定,有的需要回车事件提交表单来查询或者执行其他操作则该方法不适用) 

<form>
  <input type="text" onkeydown="ClearSubmit(e)"></input>
</form>

<script>
function ClearSubmit(e) {
  if (e.keyCode == ) {
      return false;
  }
}
</script>

3.阻止表单默认提交事件(下面例子是以form表单包裹el-input,解决 el-form中el-input回车页面刷新的问题 原生form内的input可用onsubmit句柄返回false来解决)

<form @submit.prevent="() => getList()">
  <el-input V-model="inputValue">
  </el-input>
  <el-button type="primary" native-type="submit"> {{"提交"}} </el-button>
  <el-button @click="reset">{{ $t(重置') }}</el-button>
</form>

结语:给一个elementui的官方解决这个回车刷新页面的方案开源地址吧,如果有用点个赞啥的

地址:https://github.com/ElemeFE/element/blob/a0e82aa8ac58d68e66992a5632b779a901436879/examples/docs/zh-CN/form.md文章来源地址https://www.toymoban.com/news/detail-478678.html

到了这里,关于elementUI中input回车触发页面刷新问题和解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js 模拟回车 模拟键盘,给input框输入值 触发回车事件

    使用js模拟按键输入的踩坑记录 https://zhuanlan.zhihu.com/p/356661173 a) b) c) 仅模拟回车事件 https://juejin.im/post/6844904128305430541 键盘键值对照表: https://blog.csdn.net/geekswg/article/details/120246209 原文参考: http://wjhsh.net/robinunix-p-13685771.html https://www.cnblogs.com/robinunix/p/13685771.html 浏览器兼容:

    2024年02月11日
    浏览(48)
  • elementUI 表格页面层级嵌套过多不及时刷新/错位的解决办法

    1.强制刷新(可能会影响性能) 2.页面重新布局(适用于表格错位等问题) 前提需要绑定: el-form ref=\\\"table\\\"/el-form

    2024年02月15日
    浏览(44)
  • uni-app的h5页面的onHide/onUnload方法不触发的问题解决

    目的:对h5页面进行埋点过程中,需要对页面浏览时长进行统计,通过生命周期的监听上传埋点日志 预设方案:通过个页面的onShow/onHide/onUnload生命周期对页面的展示/隐藏/销毁进行监听 问题:仅在首页正常触发生命周期,通过跳转进入的其他页面的 onShow正常触发,onHide与o

    2024年02月14日
    浏览(29)
  • 解决联想电脑win10系统下,电脑桌面不断卡顿,不断刷新页面,任务栏卡顿问题的方法

     1.最简单的解决方法,重装系统 2.联想电脑中长时间使用,不断升级,安装驱动,从而部分电脑出现桌面卡顿现象,任务栏不断刷新,屏幕不断刷新,我们可以去联想电脑驱动官网 Lenovo联想售后客户服务中心,提供驱动下载,配置查询,保修服务-联想服务 输入主机编号,点击驱

    2024年02月11日
    浏览(66)
  • ElementUI el-input无法输入、修改、删除问题解决

    elementUI是国内前端工程师应该都听过或者使用过的前端框架, 不只使用简单,而且有着详细的文档和 API。使用 el-input 这个标签时,我有些情况下在 el-input 是无法输入的,绑定的值动也动不了,删也删不掉,改也改不了,所以我做了以下的解决方法的统计,希望可以帮助到大

    2024年02月12日
    浏览(43)
  • Vue 中使用回车键触发事件的方法详解

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 在 Vue 前端开发中,我们经常需要在输入框或表单中使用回车键触发某个特定的事件,例如提交表单或搜索数据等

    2024年02月11日
    浏览(33)
  • 前端页面点击刷新-触发vue生命周期加载最新数据

    需求背景:layout布局,页面头部通过定时器获取后端消息的伪消息通知功能,在点击消息时获取所有消息总数并且刷新页面,以便触发vue的生命周期重新获取所有消息,消息展示在content中。  要触发页面刷新,可以使用vue路由的router.push方法,添加一个动态的query参数,可以

    2024年02月21日
    浏览(34)
  • 前端部署nginx刷新后404,解决Nginx刷新页面后404的问题

    使用Nginx部署后,登录页面刷新一下就出来404,如下图: 刷新以后 ,页面变成404 Not Found 查看了一下nginx配置,出现问题的配置是这样的: 修改后的配置是这样的 添加了 try_files $uri $uri/ /index.html, 然后重启一下nginx问题就解决了。 解释: try_files 表示检查文件是否存在,返回

    2024年02月13日
    浏览(36)
  • vue element-ui blur触发事件 vue中使用@blur获取input val值 elementui+vue

    vue中使用@blur获取input val值

    2024年02月11日
    浏览(37)
  • uni-app解决A页面调用方法后,自动触发B页面的方法

    tabbarA页面,触发一个点击事件,需要tabbarB页面自动触发请求接口的方法 tabbar A页面触发一个点击事件后, tabbarB页面在onload钩子函数中去请求接口,只有tabbarB页面首次打开时会触发onload钩子函数请求接口,再次跳转tabbarB页面不触发onload钩子函数,onshow中请求接口又太过于频繁 Tabba

    2024年02月17日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包