<el-form >ref数据监测不到的原因

html 复制代码
<template>
  <el-form ref="container">
    <el-form-item>
      <el-input v-model="inputValue" placeholder="请输入内容"></el-input>
    </el-form-item>
  </el-form>
</template>

<script setup>
import { ref, onMounted, onUnmounted } from 'vue';
import { ElForm, ElFormItem, ElInput } from 'element-plus';

const inputValue = ref('');
const container = ref(null);

onMounted(() => {
  const handleKeydown = (event) => {
    if (event.key === 'Enter') {
      console.log('回车键被按下了!');
    }
  };
  // 通过 $el 获取组件的底层 DOM 元素
  if (container.value && container.value.$el) {
    container.value.$el.addEventListener('keydown', handleKeydown);
  }

  onUnmounted(() => {
    if (container.value && container.value.$el) {
      container.value.$el.removeEventListener('keydown', handleKeydown);
    }
  });
});
</script>

container.value.addEventListener is not a function 错误,是因为 container 作为 el - form 组件的 ref,container.value 拿到的是组件实例,而非原生 DOM 元素,而 addEventListener 是原生 DOM 元素的方法。

你若写成 container.value.addEventListener 就会报错。正确做法是使用组件实例的 $el 属性获取底层 DOM 元素,然后再添加事件监听器。

相关推荐
quo-te2 分钟前
【JavaWeb学习Day27】
前端·vue.js·elementui
知识分享小能手25 分钟前
CSS3学习教程,从入门到精通,CSS3 元素的浮动与定位语法知识点及案例代码(18)
前端·javascript·css·学习·html·css3·html5
软件技术NINI33 分钟前
html css js网页制作成品——HTML+CSS+js迪奥口红网站网页设计(4页)附源码
javascript·css·html
Violet51544 分钟前
【JS基础】✨细说apply、call、bind:改变this指向的行为艺术📝
前端·javascript
从文处安1 小时前
Vue3 + Vite 项目部署后刷新白屏问题解决方案
vue.js
蒜香拿铁1 小时前
【前端脚手架搭建】看完还学不会,你顺着网线来打我
前端·javascript
LanceJiang1 小时前
Element-Plus 二次封装 el-table LeTable组件
前端·vue.js
梅一一1 小时前
一个b站偷懒工具
javascript·后端
珹洺1 小时前
从 HTML 到 CSS:开启网页样式之旅(八)—— 解决浮动产生的影响与浮动例题(CSS基础完结篇)
前端·javascript·css·servlet·html·html5
一个爱挣扎的旺崽1 小时前
【步骤条轮子】迎合业务的步骤条
前端·vue.js