当前位置: 首页 > news >正文

form表单单输入框回车提交事件处理

问题

form表单中如果只有一个输入框,在输入时按Enter回车键会出发默认事件自动提交表单,该交互是同步发生的,会导致页面刷新。

解决思路

有三种解决思路:

1. 增加input输入框的数量

如果form表单中不止一个input输入框,那么该表单将不会触发表单提交事件。
有时候不一定要增加一个使用的input,我们可以通过增加一个不会显示的出来的input输入框处理。

<form><!-- 原本的输入框 --><input type="text" /><!-- 增加一个不会显示也不会用上的输入框 --><input type="hidden">
</form>

2. 阻止input的回车事件

通过监听input元素的回车事件,如果匹配到回车keyCode就不继续冒泡执行

<form><input type="text" onkeyup="if(event.keyCode==13){return false;}">
</form>

3.直接阻止form表单的表单提交事件

通过监听form元素的表单提交事件,如果返回false将不会触发表单提交事件

<form onsubmit="func(); return false;"><!-- 原本的输入框 --><input type="text" />
</form><script type="text/javascript">
function func() {//	其他处理
}
</script>

针对 vue 的 elementUI 的 el-form 表单提交处理

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> 标签上添加 @submit.native.prevent

<template><el-form ref="form" :model="form" label-width="80px" @submit.native.prevent><!-- 加上 @submit.native.prevent 阻止默认提交事件 --><el-form-item label="活动名称"><el-input v-model="form.name"></el-input></el-form-item></el-form><el-form-item><el-button type="primary" @click="onSubmit">立即创建</el-button></el-form-item>
</template><script>export default {data() {return {form: { name: '' }}},methods: {onSubmit() {console.log('submit!');}}}
</script>
http://www.lryc.cn/news/16831.html

相关文章:

  • c++常用stl算法
  • 非对称密钥PKCS#1和PKCS#8格式互相转换(Java)
  • java获取当前时间的方法:LocalDateTime、Date、Calendar,以及三者的比较
  • npm link
  • Docker 如何配置镜像加速
  • 阅读笔记7——Focal Loss
  • ZCMU--5009: 龙虎斗
  • 创建项目(React+umi+typeScript)
  • FISCO BCOS(二十七)———java操作WeBase
  • 失眠时还在吃它?有风险,你了解过吗
  • 星戈瑞收藏Sulfo-CY7 amine/NHS ester/maleimide小鼠活体成像染料标记反应
  • 守护最后一道防线:Coremail邮件安全网关推出邮件召回功能
  • Python实战之小说下载神器(二)整本小说下载:看小说不用这个程序,我实在替你感到可惜*(小说爱好者必备)
  • ChatGPT三个关键技术
  • 考试系统 (springboot+vue前后端分离)
  • ChatGPT告诉你:项目管理能干到60岁吗?
  • Python自动化测试框架【Allure-pytest功能特性介绍】
  • ToB 产品拆解—Temu 商家管理后台
  • Android Studio的笔记--socket通信
  • @Async 注解
  • Redis:缓存穿透、缓存雪崩和缓存击穿(未完待续)
  • HIVE 基础(四)
  • 整型在内存中的存储(详细剖析大小端)——“C”
  • PS_高低频和中性灰——双曲线
  • Vim 命令速查表
  • Java重要基本概念理解
  • 逆向工具之 unidbg 执行 so
  • zk-STARK/zk-SNARK中IP,PCP,IPCP,IOP,PIOP,LIP,LPCP模型介绍
  • StreamAPI
  • MySQl高可用集群搭建(MGR + ProxySQL + Keepalived)