当前位置: 首页 > 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', '-');});
}

相关文章:

  • ​​STC51系列单片机引脚分类与功能速查表(以STC89C52为例)​
  • java每日精进 5.15【分页实现】
  • 自学嵌入式 day 18 - 数据结构 1
  • Seata源码—3.全局事务注解扫描器的初始化一
  • Ansys Zemax | 在 MATLAB 或 Python 中使用 ZOS-API 进行光线追迹的批次处理
  • Web》》url 参数 # 、 ? 、@
  • element ui 级联列表Cascader懒加载数据回显的优雅解决方案
  • LocalDateTime类型的时间在前端页面不显示或者修改数据时因为LocalDateTime导致无法修改,解决方案
  • 会计要素+借贷分录+会计科目+账户,几个银行会计的重要概念
  • 【J2】乘法逆元
  • 将b[索引]中元素按照a中元素的值进行排序
  • C++核心编程--1 内存分区模型
  • python打卡day26
  • 如何在线免费压缩PDF文档?
  • 【MySQL】多表连接查询
  • 各个历史版本mysql/tomcat/Redis/Jdk/Apache/gitlab下载地址
  • 2024年9月电子学会等级考试五级第三题——整数分解
  • 【蓝桥杯省赛真题49】python偶数 第十五届蓝桥杯青少组Python编程省赛真题解析
  • zynq嵌入式linux启动默认设置
  • 钉钉数据与金蝶云星空的无缝集成解决方案
  • 上海老字号卖黄金,与动漫IP联名两周销售额近亿元
  • 2025年“新时代网络文明公益广告”征集展示活动在沪启动
  • 高新波任西安电子科技大学校长
  • 商务部:中方将适时发布中美经贸磋商相关消息
  • “三个集中”之后:图说浦东新区28次撤乡并镇
  • 苏轼“胡为适南海”?