平时我们项目中的列表页面通常都有条件搜索,为了使用方便通常都会支持回车搜索.

此功能的实现普遍做法是:为form表单添加 @keydown.enter.native="自定义方法名称"
然后在方法触发时判断keyCode是否等与13 如果是13则证明触发了回车键

例如:

<Form :label-width="100" :model="searchForm" inline ref="searchForm" @keydown.enter.native="searchEnterFun" @submit.native.prevent><FormItem label="搜索关键词:" prop="keyword"><Input clearable placeholder="支持模糊搜索" style="width: 200px" type="text" v-model="searchForm.keyword"/></FormItem><FormItem style="margin-left: -75px"><Button @click="handleSearch" icon="md-search" type="primary">搜索</Button><Button @click="handleResetSearch">重置</Button></FormItem>
</Form>
searchEnterFun(e) {//which 和 keyCode 属性提供了解决浏览器的兼容性的方法。//keyCode属性返回onkeypress事件触发的键的值的字符代码,或者 onkeydown 或 onkeyup 事件的键的代码var keyCode = window.event? e.keyCode:e.which;if (keyCode == 13) {this.getCustomList();  //搜索事件}
},

嗯,回车触发表单提交的实际应用就简单介绍这么多,接下来我们来说说这里面的坑

1.使用vue开发,页面文本框在点击回车时会刷新页面,而且只有第一次会触发刷新。
2.回车后页面进行了刷新并且在跳转 URL中也多出了 ?
3.再次回车查询正常,不会刷新了
那么我们来说说产生此bug的原因以及解决方案

bug原因:在当前页面元素中只有一个文本框时,点击回车时会自动提交表单;

资料依据:

W3C 标准中有如下规定:

  1. When there is only one single-line text input field in a form,

  2. the user agent should accept Enter in that field as a request to submit the form.

  3. 当表单中只有一个单行文本输入框时,客户端应该接受该区域中的Enter作为提交表单的请求

解决方案:

在FORM标签中加入@SUBMIT.NATIVE.PREVENT阻止事件即可

大家仔细看我最上面的示例代码不难发现本人已经添加,实在是这个坑跌的我差点爬不出来!!!

因此特做此纪录,防止自己重复跌坑,也方便给已经跌坑的道友扔出"希望之梯"......

vue中form表单支持回车键提交踩坑相关推荐

  1. Vue中form表单提交问题

    关于input组件回车后,默认提交form表单 出现的问题: <div class="searchArea"><form action="###&quo ...

  2. django中form表单post无法提交

    报错403:Forbidden (CSRF token missing or incorrect.) 解决方法 方法一: 把settings.py文件中含有csrf那一行注释掉 方法二: 1.导入cs ...

  3. vue的form表单在提交成功后置空

    vue的form表单在提交成功后置空 form表单 说明 :form表单加上属性值 ref="form" 点击事件加入 roleManager.$refs['form'].rese ...

  4. 利用beforeSend实现提交加载中、form表单的重复提交等前端功能

    前文   在用JQ+bootstrap写前端的时候,有时需要实现点击按钮后失效的功能,比如下载按钮,为了避免网络延迟而引起的页面不及时跳转,让用户多次点击按钮,造成的服务器压力和用户体验就都不友好.发 ...

  5. vue 给form表单赋值_vue获取form表单的值示例

    vue获取form表单的值示例 这里使用的是Element-ui组件 html: JS: var phone = this.phone; var password = this.password; v ...

  6. html中form表单标签的使用

    在html中,表单是经常用到的,用来与用户交互并提交数据.今天要介绍的就是表单标签form标签 "form"作为英文单词有"表格"的意思 1.定义和用法 标签是 ...

  7. Form表单 回车(Enter)提交表单问题

    Form表单 回车(Enter)提交表单问题 在Form表单中input会自动响应回车事件.这是表单的默认提交动作. 表单的提交行为,可以用两种方式定义,一是form表单自身,二是form表单的but ...

  8. php阻止form提交表单提交,防止表单提交时刷新页面-阻止form表单的默认提交行为...

    最近在写 ajax 提交的时候遇到一个问题,在执行 ajax 提交之后,浏览器页面自动刷新了,主要是没有 由于form 表单的默认提交行为.一下是几种阻止 form 表单默认提交行为的方式. 1.使用 ...

  9. php表单转json对象,form表单转Json提交的方法(推荐)

    form表单转Json提交的方法(推荐) 先将表单数值转换成数组存储,存储成的格式为[{"name":"","value":"&q ...

最新文章

  1. vuex+vue-router拦截
  2. leetcode 82. 删除排序链表中的重复元素 II
  3. 第 20 课时:GPU 管理和 Device Plugin 工作机制(车漾)
  4. 苹果5g手机_5G手机即将大量上市,iPhone缺席首批5G手机,苹果为何不急?
  5. Java中执行存储过程和函数(web基础学习笔记十四)
  6. boost::undirected_dfs用法的测试程序
  7. Django-form表单
  8. 博客园配置windows live writer,实现本地代码高亮
  9. 释放空间后将指针置空
  10. FastDFS原理及工作流程
  11. 使用第三方插件Curvy为unity场景快速生成运动轨迹与赛道
  12. 阿里云服务器 ECS 数据盘与系统盘是什么?
  13. wordpress插件_WordPress插件可成功进行内容营销
  14. eviews做回归分析时输出值的理解
  15. linux添加定时任务报错 error renaming /var/spool/cron/#tmp.xxxxxxxx to /var/spool/
  16. JAVA泛型通配符T,E,K,V区别,T以及ClassT,ClassT的区别
  17. 核心显卡和独立显卡的区别
  18. .NET C# winform窗体假死
  19. go学习 --- godoc工具安装
  20. 关于膨胀系数silhouette_score的metric耗时

热门文章

  1. Linux块设备驱动程序原理
  2. Vagrant挂载目录失败mount: unknown filesystem type ‘vboxsf’
  3. vue Cli 脚手架的搭建
  4. Python3.5在Windows7环境下Scrapy库的安装
  5. 如何让asp.net应用程序定时自动执行代码
  6. 数据库系统优化--业务逻辑设计优化
  7. iqn怎么查 linux_程序员必备:46个Linux面试常见问题!收藏!
  8. springboot中使用poi导出excel文件(亲测实现了第一个功能)
  9. 破解百度网盘的Pandownload开发者被捕,让人唏嘘
  10. php 判断http还是https,以及获得当前url的方法