首页 > 互联资讯 > 技术交流  > 

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

目录
  • 前言
  • 解决方法:element也给出了解决方法
  • 注意事项:
  • 总结

前言

今天在做项目的的时候发现创建的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触发页面刷新


  
    
  
  
    提交
    重置
  

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

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


  
    
  
  
    提交
    重置
  

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


  
    
  
  
    提交
    重置
  

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

注意事项:

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

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

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

②通过css样式进行隐藏

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

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

{{"提交"}} {{ $t(重置') }}

结语:给一个elementui的官方解决这个回车刷新页面的方案开源地址吧

地址:https://github.com/ElemeFE/element/blob/a0e82aa8ac58d68e66992a5632b779a901436879/examples/docs/zh-CN/form.md

总结

到此这篇关于elementUI中input回车触发页面刷新问题与解决方法的文章就介绍到这了,更多相关elementUI input触发页面刷新内容请搜索讯客以前的文章或继续浏览下面的相关文章希望大家以后多多支持讯客!

elementUI中input回车触发页面刷新问题与解决方法由讯客互联技术交流栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“elementUI中input回车触发页面刷新问题与解决方法