React antd Select 无法在disabled状态下选择并复制输入框内的内容情况分析及解决方案

news2025/4/8 11:52:15

文章目录

      • 背景
      • 问题分析
        • 解决思路一:会不会是由于在选择框内hover的时候出现的那个图标导致的
        • 解决思路二:会不会是这个span禁止复制
        • 解决思路三:去看看antd具体实现
      • 最终解决方案
      • 其他版本的解决方案
        • antd3.*
        • antd5.*

背景

在React项目开发中,我们经常会用到antd内的Select组件。有时候我们会在disabled状态使用Select。这个时候我们偶尔会想要复制到Select内的这个输入框里面的内容。但是会发现无法复制。
我这边使用的是antd4

请添加图片描述在这里插入图片描述

问题分析

出现了无法复制的情况,那么我们就要进行问题的分析
首先,通过打开控制台的方式,来看这个Select的Dom是怎么样的

在这里插入图片描述

我们通过控制台可以看到,antd的Select实现并非传统的使用原生select来改动,而是自己通过div和span通过代码组合来组装成的组件。

解决思路一:会不会是由于在选择框内hover的时候出现的那个图标导致的

于是,就直接在element内改动样式,去掉这个玩意
众所周知,一般这种图标,鼠标置于某处,鼠标的样式是由cursor这个东西决定的

在这里插入图片描述

去掉之后,果然还是不行

解决思路二:会不会是这个span禁止复制

从我们所学到的知识来看,禁止一个span被复制,我们可以使用css来处理,也就是在 这个span上加上一段css

<span style={{ userSelect: 'none'}}>不可以被复制的文字</span>

这一段代码加上,就会让span无法被复制

在这里插入图片描述

一看,果然有。但是去掉之后,还是不行

但是去掉之后还是不行,心碎思密达

解决思路三:去看看antd具体实现

遇事不决,去看源码
在这里插入图片描述
一顿框框的看之后,意识到了问题的所在,我们想要复制的是span的内容,但是在他的上层有一层div,我们关于的鼠标事件就被div遮盖了。所以,我们需要将鼠标事件,穿透到span上触发。

最终解决方案

在这里插入图片描述

pointer-events:none 的作用:
阻止用户的点击动作产生任何效果
阻止缺省鼠标指针的显示
阻止CSS里的 hover 和 active 状态的变化触发事件
阻止JavaScript点击动作触发的事件

mdn的解释的再解释:(中翻中了属于是)
pointer-events:none——元素不再是鼠标事件的目标,鼠标不再监听当前层而去监听下面的层中的元素。但是如果它的子元素设置了pointer-events为其它值,比如auto(默认值),鼠标还是会监听这个子元素的。

更通俗的说法是,pointer-events:none作用是让元素实体“虚化”。例如一个应用pointer-events:none的按钮元素,则我们在页面上看到的这个按钮,只是一个虚幻的影子而已,您可以理解为海市蜃楼,幽灵的躯体。当我们用手触碰它的时候可以轻易地没有任何感觉地从中穿过去。一切都是幻影!

在这里插入图片描述
只需要在Select使用处,加上样式 pointer-events:none。然后重写这个antd的样式即可解决这个问题。

其他版本的解决方案

antd3.*

这个版本直接用div套div的方式
在这里插入图片描述
还是同理,修改这两处即可。

antd5.*

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1029993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯打卡Day13天

文章目录 整数拆分神奇的口袋 一、整数拆分OJ链接 本题思路:本题是一道简单的01背包问题。由于题目中说将数字拆分成2的幂&#xff0c;而且可以重复使用。 Python代码&#xff1a; N1000010 modint(1e9)f[0]*N;nint(input())f[0]1i1 while i<n:for j in range(i,n1):f[j…

命名和代码风格

一段代码&#xff0c;一个方法后面要打换行&#xff01;&#xff01;&#xff01;&#xff01; api的js代码引入的时候要分开回车空行&#xff0c;例如api的Project.js 命名规则&#xff1a; t-dialog控件显示的visible命名的时候例如&#xff1a;visibleVerify&#xff0c;显…

sudo apt-get update失败的原因和解决方法

ubuntu更新资源包时出现连接超时的问题&#xff1a; 无法发起与 cn.archive.ubuntu.com:80 (2403:2c80:5::6) 的连接 - connect (101: 网络不可达) 无法连接上 cn.archive.ubuntu.com:80 (45.125.0.6)&#xff0c;连接超时 正在读取软件包列表… 完成 W: 无法下载 http://cn.ar…

一文介绍使用 JIT 认证后实时同步用户更加优雅

首先本次说的 JIT 指的是 Just In Time &#xff0c;可以理解为及时录入&#xff0c;一般用在什么样的场景呢&#xff1f; 还记的上次我们说过关于第三方组织结构同步的功能实现&#xff0c;主要目的是将第三方源数据同步到内部平台中来&#xff0c;方便做管控和处理 此处的管…

java.lang.ClassNotFoundException: rx.Single(hystrix)

做springcloud整合hystrix时候&#xff0c;接口加上HystrixCommand后报错。 原因是hystrix依赖的第三方Jar----rxjava版本低&#xff0c;把rxjava更新为最新jar即可

Linux Day18 TCP_UDP协议及相关知识

一、网络基础概念 1.1 网络 网络是由若干结点和连接这些结点的链路组成&#xff0c;网络中的结点可以是计算机&#xff0c;交换机、 路由器等设备。 1.2 互联网 把多个网络连接起来就构成了互联网。目前最大的互联网就是因特网。 网络设备有&#xff1a;交换机、路由器、…

C语言基础知识点(八)联合体和大小端模式

以下程序的输出是&#xff08;&#xff09; union myun {struct { int x, y, z;} u;int k; } a; int main() {a.u.x 4;a.u.y 5;a.u.z 6;a.k 0;printf("%d\n", a.u.x); } 小端模式 数据的低位放在低地址空间&#xff0c;数据的高位放在高地址空间 简记&#xff…

c指针进阶

目录 char* 指针 指针数组 数组指针 应用 接收一维数组(不常用) 接收二维数组 存放数组指针的数组 一维数组传参 二维数组传参 函数指针 两段有趣的代码 函数指针数组 应用——计算器 指向函数指针数组的指针 回调函数 qsort 修改冒泡排序 char* 指针 一个char*…

Android:创建jniLibs的步骤

一、前言&#xff1a; android libs&#xff0c;jniLibs库的基本使用 libs&#xff0c;jniLibs用来存放各种.so库文件。如果没有jniLibs目录需要自己手动创建&#xff0c;并且库名称也不能随便更改。 二、解决方案&#xff1a; 我之前弄了好久也弄不出来&#xff0c;之前有说…

ubuntu20.04下源码编译colmap3.9

由于稠密重建需要CUDA&#xff0c;因此先安装CUDA&#xff0c;我使用的是3050GPU&#xff0c;nvidia-smi显示最高支持CUDA11.4。 不要用sudo apt安装&#xff0c;版本较低&#xff0c;30系显卡建议安装CUDA11.0以上&#xff0c;这里安装了11.1版本。 下载&#xff1a; cuda_1…

程序员接单实现财富自由?原来是用了这十大良心平台!!!

后疫情时代下,经济复苏缓慢&#xff0c;处于下行阶段。同时&#xff0c;由于强大的生活压力&#xff0c;社会内卷日益严峻 各行各业的打工人&#xff0c;都在公司里“阴暗扭曲爬行”。从“996”到“007”&#xff0c;工作强度简直是苦不堪言。尤其对咱们IT行业&#xff0c;本来…

Python 打印文本进度条

""" 打印文本进度条知识点&#xff1a;1、字符串运算&#xff0c;注意只能适用于加法、乘法&#xff0c;例如&#xff1a;123 123 123123例如&#xff1a;123 * 3 1231231232、循环语句while、for3、条件语句if4、重点&#xff1a;转义字符\r&#xff0c;可以…

浙大mpa项目提前批面试如果拿不到A资格怎么办?

2024年浙江大学MPA项目提前批面试申请已经结束&#xff0c;至今来看总的申请人数跟去年2023届基本相当&#xff0c;超过四百名学员报名提面&#xff0c;按照去年1923人报考的体量来看&#xff0c;大多数人恐怕还是把录取的希望保留到常规批复试中。那么&#xff0c;400提面考生…

Linux 爱好者线下沙龙:LLUG 2023 深圳硬核来袭 | 第三站

导读&#xff1a;2023 年 9 月 24 日下午&#xff0c;我们将在深圳举行 LLUG 2023 深圳场。本文转自 Linux 中国&#xff0c;以下为本次活动介绍。本文字数&#xff1a;1629&#xff0c;阅读时长大约&#xff1a;2分钟 经历过 6 月北京场、7 月上海场&#xff0c;一个月的休整…

关于物联网技术的水电厂电气开关柜测温系统设计应用

摘要&#xff1a;针对洪江水电厂电气开关柜温度无法在线监测的问题,本文提出了一种基于物联网技术的水电厂开关柜温度测量系统。该系统部署简单高效&#xff0c;能快速采集设备温度数据&#xff0c;通过4G或者WiFi无线信号将数据送入物联网云平台&#xff0c;实现开关柜温度远程…

常见的项目进度管理失败的原因及应对建议

在项目管理中&#xff0c;进度管理是核心环节之一。然而&#xff0c;许多项目经理在实施过程中面临失败的困境。为了改善这一状况&#xff0c;本文将分析我们常见三种的进度管理失败的原因&#xff0c;并分享一些有效的提升效率的方法。希望对大家有所帮助。 进度管理失败的原…

ReclerView的多种条目布局

一、效果图 模仿QQ看点的布局&#xff1a; 二、代码 MoreTypeAdapter &#xff1a; package com.example.qq.ThirdFragment.Adapter;import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import an…

[杂谈]-十六进制数

十六进制数 文章目录 十六进制数1、概述2、十六进制数字3、以十六进制计数4、二进制数补零5、十六进制到十进制转换6、十进制到十六进制转换7、二进制到十六进制转换示例8、十六进制转二进制和十进制示例9、总结 1、概述 十六进制 数字是一种以16为基数的计数系统&#xff0c;…

pcl--第八节 点云配准数学原理

学习目的&#xff1a; 能够大致看懂技术算法的论文&#xff08;理论理解能力&#xff09;能够将论文和代码对应起来&#xff08;代码追踪能力&#xff09;知道常见算法函数的代码实现方式&#xff08;算法实现能力&#xff09; 注意&#xff01;不要求能够推导、证明算法论文…

导航菜单布局

制作包含logo、菜单、按钮的3分离布局菜单 完成效果 准备html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…