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

Element Plus 取消el-form-item点击触发组件,改为原生表单控件

文章目录

  • 问题:
  • 方法一:使用全局样式覆盖(推荐)
  • 方法二:自定义指令(更灵活)
  • 方法三:封装高阶组件
  • 方法四:运行时DOM修改(不推荐)

问题:

描述:点击label文字的时候,会触发对应el-form-item的el-input或者el-select组件聚焦和下拉效果。
label 元素本身不会向用户呈现任何特殊效果。不过,element-plus组件库为鼠标用户改进了可用性。如果在 label 元素内点击文本,就会触发此控件。简而言之,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。根本原因:label标签的“for”属性表单控件“id”绑定了相同的值。

原文链接:https://blog.csdn.net/github_74887499/article/details/145492900
解决方案:全局禁用el-form-item的label点击事件
在这里插入图片描述
需要在el-form-item 上添加for = “-”,将元素改为原生html元素,移除默认效果

      <el-form-item label="姓名" for="-"><el-input v-model="userName" /></el-form-item>

方法一:使用全局样式覆盖(推荐)

在项目的全局CSS文件中添加以下样式,可以一次性禁用所有el-form-item的label点击事件:

/* 在全局样式文件(如main.css或App.vue的style中) */
.el-form-item__label {pointer-events: none;
}

方法二:自定义指令(更灵活)

创建一个Vue自定义指令,批量处理所有el-form-item:

// 在main.js或指令文件中
app.directive('disable-label-focus', {mounted(el) {const label = el.querySelector('.el-form-item__label');if (label) {label.setAttribute('for', '-');}}
});// 使用方式(在el-form上添加指令)
<el-form v-disable-label-focus><!-- 所有子el-form-item都会自动处理 -->
</el-form>

方法三:封装高阶组件

创建一个包裹组件自动注入for="-"属性:

// FormItemWrapper.vue
<template><el-form-item v-bind="$attrs" for="-"><slot /></el-form-item>
</template>// 使用方式(替换所有el-form-item)
<form-item-wrapper label="姓名"><el-input v-model="userName" />
</form-item-wrapper>

方法四:运行时DOM修改(不推荐)

在mounted钩子中批量修改(慎用,可能影响性能):

mounted() {document.querySelectorAll('.el-form-item__label').forEach(label => {label.setAttribute('for', '-');});
}
http://www.xdnf.cn/news/471727.html

相关文章:

  • Seata源码—3.全局事务注解扫描器的初始化一
  • 5月15日day26打卡
  • 计量经济学——预测与chow检验
  • 以项目的方式学QT开发(三)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
  • C++ QT图片查看器
  • 软件设计师考试《综合知识》软件过程模型考点分析——求三连
  • 044-代码味道-数据类
  • 【YOLO 系列】基于YOLO的道路坑洞检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
  • SWMM相关文档共享
  • BUUCTF——shrine
  • 牛客网 NC22167: 多组数据a+b
  • 差分振荡器:支持0.15ps超低抖动的高速时钟核心
  • 腾讯AI军备极速扩张
  • LCD电视LED背光全解析:直下式 vs 侧光式、全局调光 vs 局部调光与HDR体验
  • (6)python开发经验
  • hbit资产收集工具Docker(笔记版)
  • 电商热销榜的5种实现方案
  • [python] Python元组、字典与集合的全面解析
  • Linux常用命令41——passwd修改用户的密码值
  • OpenCV光流估计:原理、实现与应用
  • 深度解析物理机服务器故障修复时间:影响因素与优化策略
  • Linux常用的性能分析工具
  • 加密原理3-代码
  • 可视化图解算法40:二分查找-I
  • HGDB企业版迁移到HGDB安全版
  • fakeroot 在没有超级用户权限的情况下模拟文件系统的超级用户行为
  • 疲劳分析后处理参数意义?
  • LeetCode 2900.最长相邻不相等子序列 I:阅读理解题——O(n)一次遍历(贪心)
  • Makefile 详解
  • Vscode 配置python调试环境