【el-form】记一例好用的el-input输入框回车调接口和el-button按钮防重点击

前言:
今天在工作过程中发现了一个在el-form中比较好用的按钮防重点击和输入框回车调接口刷新的方法,在此记录一下

javascript 复制代码
<template>
  <el-form @submit.prevent="onSubmit">
    <el-form-item label="名称">
      <el-input v-model="formData.name" @keyup.enter="onSubmit"></el-input>
    </el-form-item>
    <el-form-item label="年龄">
      <el-input v-model="formData.age"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" native-type="submit" :loading="loading">提交</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        name: '',
        age: ''
      },
      loading: false
    };
  },
  methods: {
    onSubmit() {
      // 表单提交逻辑
      this.loading = true
      console.log('表单提交:', this.formData);
      // 这里可以添加表单验证、数据处理等逻辑,表单提交成功后
      this.loading = false
    }
  }
};
</script>

<style scoped>
/* 可以添加一些样式 */
.el-form {
  max-width: 400px;
  margin: 0 auto;
}
</style>

/** 
1、@keyup.enter可以用在el-input输入框中,也可以用在el-form表单中,比如查询的时候就可以直接把@keyup.enter放在el-from表单中<el-form @keyup.enter="refreshList()">,这样每个查询条件的输入框都可以回车调用查询接口刷新页面数据了。 
2、@keyup.enter 事件修饰符
作用:当用户在指定的元素上按下 Enter 键时触发事件。
使用场景:通常用于表单输入框中,当用户按下 Enter 键时执行某个操作,比如提交表单或执行搜索。
3、@submit.prevent 事件修饰符
作用:在表单提交时阻止默认的提交行为,并触发指定的方法。
使用场景:通常用于表单提交时,防止表单页面刷新或跳转,并在提交前进行一些验证或处理。
4、这两个事件修饰符经常一起使用,以实现更灵活的表单提交和交互逻辑。
**/

以上是我遇到的一种方式,如果大家有更好的方法欢迎评论区交流。

相关推荐
逆光如雪32 分钟前
移动端卡片边框怎么做高级?我用 CSS 实现了设计师的刁钻要求
前端·css·vue.js
莹宝思密达38 分钟前
地图显示西安经济开发区边界线-2023.12
前端·vue.js·数据可视化
小龙报1 小时前
【Coze-AI智能体平台】Coze OpenAPI 开发手册:鉴权、接口调用与 SDK 实践
javascript·人工智能·python·深度学习·microsoft·文心一言·开源软件
神の愛1 小时前
利用json-to-ts工具进行转换,放置在typeScript.ts文件中
javascript·typescript·json
悟空瞎说2 小时前
深度解析:Vue3 为何弃用 defineProperty,Proxy 到底强在哪里?
前端·javascript
leafyyuki2 小时前
告别 Vuex 的繁琐!Pinia 如何以更优雅的方式重塑 Vue 状态管理
前端·javascript·vue.js
Hooray2 小时前
AI 时代的管理后台框架,应该是什么样子?
前端·vue.js·ai编程
某人辛木2 小时前
nodejs下载安装
开发语言·前端·javascript
zzginfo2 小时前
javascript 类定义常见注意事项
开发语言·前端·javascript
天下无贼!2 小时前
【功能实现】基于Vue3+TS实现大文件分片上传
开发语言·javascript·node.js·vue·html5