【react】解决在外部设置react组件input的value问题

js自动模拟用户键盘输入/自动触发输入事件/自动触发input事件 输入框自动填写内容后,无法触发表单的提交,需要出发input事件。 阅读详情

背景:

为了快速输入账号,密码,写了一个插件,但由于输入部分用了antd,改变value并不能通过校验。

解决思路:

能否模拟用户键盘输入,这样避免直接设置value校验不通过的问题。

找到的办法:

react页面专属,因为react16内部定义了descript拦截value,所以派发事件,无法触发input所绑定的事件,需要重置输入状态;

function set(dom,num,value){
	let inputLabel = dom; //这里获取需要自动录入的input内容
	let lastValue = inputLabel[num].value;
	inputLabel[num].value = value;
	let event = new Event("input", { bubbles: true });
	//  React15
	event.simulated = true;
	//  React16 内部定义了descriptor拦截value,此处重置状态
	let tracker = inputLabel[num]._valueTracker;
	if (tracker) {
		tracker.setValue(lastValue);
	}
	inputLabel[num].dispatchEvent(event);
}

setTimeout(()=>{
	set($(".ant-input"),0,'账号');
	set($(".ant-input"),1,'密码');
},200)

自动化填充React受控组件:从原生setter到事件派发全解 前端开发中表单自动填充是高频需求,尤其在自动化测试、浏览器插件和批量导入场景。然而在React框架下,直接对input元素赋值往往会被受控组件机制覆盖,导致页面显示新值但状态未更新。React受控组件通过单向数据流绑定state与视图,仅原生value setter配合事件派发才能绕过其内部对账机制。理解这一原理能显著提升表单操作的成功率,避免踩坑。本文从实际应用出发,系统讲解React 18/19中的行为差异、如何同步React内部标记(如__reactProps$),并结合Testing Library 阅读详情

相关推荐

react-tracker:React特定的跟踪库,使用最少的API跟踪用户交互!

React追踪器 使用最少的API跟踪用户交互 什么? React特定的跟踪库,可用作高阶组件 灵活可扩展的跟踪解决方案 可以插入任何Google Analytics(分析)平台: Google跟踪代码管理器 Facebook像素 您主要可以在事件监听器回调中执行任何操作。 易于使用(类似Redux) 安装 $ npm install --save react-tracker 假设您使用作为程序包管理器。 演示版 要查看React跟踪器的运行情况,请访问下面的链接。 文献资料 初始化追踪器 创建一个跟踪器,其中包含您的应用程序的跟踪事件历史记录。 跟踪器API是{ on, track

解决React中操作input的value时无法触发input事件问题

解决方法,见如下代码: 原例: let input = someInput; let lastValue = input.value; input.value = 'new value'; let event = new Event('input', { bubbles: true }); // hack React15 event.simulated = true; // hack React16 内部定义了descriptor拦截value,此处重置状态 let tracker = input._va

Jyms的博客 1347

如何下载最新版本的VMware Workstation

随着虚拟化技术的发展,VMware Workstation作为行业领先的桌面虚拟化软件,为用户提供了在单一物理计算机上运行多个操作系统的能力。本文将详细介绍如何从Broadcom支持网站下载最新的VMware Workstation Pro版本。

安呀智数据坊的博客 665

JavaScript input输入数值(value)无效的原因和解决办法

会碰到这个问题一般是想×别人的网页导致的,一般来说想控制别人写的网页(或者维护一份别人的网页代码)碰到需要用JS给input或者select之类的组件赋值的时候一般会直接这样写:   let casess=document.getElementsByClassName('xxxxx')[0];   casess.value='50'; 赋值后点击有时候会报错有时候不会,一般报错的情况基本上属于这份代码用了某些前端框架,例如Vue之类的,Vue的input弄个双向绑定啥的,此时我...

l198738655的博客 2万+

《AI应用架构师智能特征工程实践的前沿趋势解读》

面对传统方法的局限性,智能特征工程(Intelligent Feature Engineering)应运而生。智能特征工程是指利用人工智能、机器学习和自动化技术,实现特征提取、构造、选择和优化过程的自动化、智能化和可扩展化的方法和技术体系。效率提升:将数据科学家从繁琐的人工特征工程中解放出来,大幅缩短特征开发周期。质量保障:通过系统化方法发现人类难以察觉的特征模式,提高特征质量和模型性能。可扩展性:能够处理大规模、高维度和多类型的数据,适应不同领域和场景。降低门槛。

大数据洞察的博客 1179

Silvaco Atlas新手入门:从安装到第一个半导体器件仿真(附DeckBuild配置)

本文为Silvaco Atlas新手提供了一份从软件安装、DeckBuild环境配置到完成第一个半导体器件仿真的实战指南。通过构建一个经典的PN结二极管案例,详细讲解了Atlas仿真语句的语法、核心命令顺序以及结果调试与可视化方法,帮助初学者快速上手并理解TCAD仿真流程。

sql99的博客 332

【实战】React 实战项目常见报错 —— 直接使用 ref, 报错:react can not set ref string for ...

React.createRef()

程序边界 1197

8,9,10,11,12,13代CPU特制win7 64位系统

对于7代以上的CPU装win7,在UEFI的模式下,如果不提前注入显卡驱动,就会一直卡在LOGO界面。对于此情况,我们推出一个内置了显卡和USB驱动的特制版win7系统。由于单文件已经大于了4G,所以推荐使用rufus来写入镜像安装。如还有问题,请记录下电脑配置,联系QQ11717907。制作完成以后,就可以通过U盘启动安装了。

海康威视技术支持 7249

React中使用antd里Form组件表单验证,其中的input设置type为number,中文输入法却能却输入

场景如题,已经在此处设置了表单验证规则,并且input的type为number 情况是,输入数字,不能输入,英文输入法下输入英文,也无法输入, 但是用中文输入法,不按回车的情况下还能输入,打完字不按回车,直接点击输入框外的区域,还能保留下输入的内容,也不触发验证,但是最后提交会触发验证 点击提交后 ...

Voiceu的博客 3223

详解Xilinx FPGA高速串行收发器GTX/GTP(6)--Pattern Generator/Pattern Checker

详解Xilinx FPGA高速串行收发器GTX/GTP(6)--Pattern Generator/Pattern Checker

孤独的单刀 1624

【调优】OpenClaw调优之模型(tokens)篇

OpenClaw用户常遇四大痛点:规则被无视、API账单暴涨、低效模型选择、记忆丢失。通过/context list命令可解析上下文组成,包括工作区配置、引导参数限制、系统提示词等关键信息。重点需关注Token消耗来源,如核心配置文件、技能工具说明等,避免静默截断。建议精简非必要内容,优化记忆机制,平衡功能与成本。该分析帮助用户减少无效操作,合理控制API支出。

海兰 990

react 获取input 输入框的值

react 获取input 输入框的值 第一种方式 非受控组件获取 第二种方式 受控组件获取 非受控组件获取 ref import React , {Component} from 'react'; export default class App extends Component{ search(){ const inpVal = this.input...

永远都是Pink 6万+

MIPI D-PHY TX 一致性测试实例解析 Part 03

本文之前,已经讨论了MIPI D-PHY TX的1.3.x和1.4.x的测试项,1.5.x的测试项相对较少,主要是用于时钟和数据通道相关的时序测量

一只豌豆象的博客 5184

react-flatpickr 基础属性完全解析:defaultValue、value 与 className 的正确打开方式

react-flatpickr 是为 React 应用提供 flatpickr 日期选择器封装的开源组件库,一行代码就能在表单中嵌入颜值在线的日期/时间选择器。📅 本文带你完整掌握它的三个基础属性——`defaultValue`、`value` 与 `className`,讲清它们的类型差异、适用场景和最容易踩的坑,帮你快速写出"一次就写对"的日期组件。 ## 先认识 react-flatpi

gitblog_01127的博客 420

Android性能分析深度指南:Perfetto工具全面解析

本文深入探讨Android性能优化工具Perfetto的应用与实践。作为Google推出的新一代追踪系统,Perfetto整合了CPU调度、内存分配、电池状态等多维度分析功能,通过高性能数据处理和可视化界面帮助开发者定位性能瓶颈。文章系统介绍了Perfetto的架构原理、配置方法和核心功能,包括CPU性能分析、内存泄漏检测等关键技术。通过电商应用卡顿优化的实战案例,展示了如何利用数学建模(如帧时间公式$T_{\text{render}}\leq16.67\text{ms}$)指导性能调优。

郑伟强dev的专栏 144

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

浅谈react受控组件与非受控组件

最近在使用蚂蚁金服出品的一条基于react的ant-design UI组件时遇到一个问题,编辑页面时input输入框会展示保存前的数据,但是是用defaultValue就是不起作用,输入框始终为空值而不是具体的传入的值。具体编辑页面中文本框相关的代码如下: ... //render方法上面的内容省略 FormItem label="问题描述:" ha

yinjing8435的博客 1898

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

react-input-range事件处理详解:onChange、onChangeStart与onChangeComplete应用

react-input-range是一个实用的React范围滑块组件,允许用户通过拖动滑块在指定范围内输入数值。本文将详细介绍其核心事件处理机制,包括onChange、onChangeStart和onChangeComplete三个关键事件的应用场景与使用方法,帮助开发者快速掌握如何在实际项目中有效利用这些事件。 ## 事件处理机制概述 在react-input-range组件中,事件处理是实

gitblog_01022的博客 904

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

react-design-patterns详解七:State状态模式,一个Input组件吃掉所有输入变体的终极方案

**react-design-patterns** 是一个把经典面向对象设计模式落地到 React 的研究项目,本篇详解其中的 **State 状态模式**:如何只用一个 `Input` 组件,靠可替换的"状态对象"吃掉普通输入、大写输入、脱敏输入、节流输入等所有输入变体,从根源上解决组件家族无限膨胀的问题 🎯 ## 🧩 State状态模式是什么:告别"一个功能一个组件" 在组件化开发中,

gitblog_00431的博客 427

5 个平台装好 Saber 手写笔记:Android、iOS、Windows、macOS、Linux 完整指南

Saber 是一款免费的跨平台手写笔记应用:它专为触控笔设计,支持在网格纸或空白纸上书写、高亮、框选,还能导入 PDF 和图片直接在上面批注,笔记可在各设备间云同步。本文带你走一遍 **Saber 安装** 的全过程——不管你用的是手机、平板还是电脑,按下面的路线走,10 分钟内就能装好上手。 [![Saber 桌面端主界面:Recent notes 笔记列表](https://raw.gitc

gitblog_00289的博客 180

外部js代码注入修改react框架的input和Textarea的值-2025年6月

该标签和上述input标签修改方式不同,需要获取fiber节点和Props,访问React内部状态更新函数,详情看下面函数。比如下面中的可售数量,试着尝试直接修改input标签的value值,点下其他空白处输入框内容就没有了.转载于: https://www.cnblogs.com/byhgz/p/18935251。* 修改react的input框的值,vue的没有测试。// 2. 使用React Fiber的更新机制。//2. 使用setter方式修改值。// 触发React的状态更新。

weixin_28752709的博客 110

react-otp-input完全指南:构建安全高效的一次性密码输入组件

react-otp-input是一个基于React构建的完全可定制的一次性密码输入组件,为Web应用提供安全高效的OTP验证解决方案。无论是用户注册、身份验证还是敏感操作确认,这款轻量级组件都能帮助开发者快速实现专业的验证码输入功能。 ## 为什么选择react-otp-input? 在当今数字化时代,一次性密码(OTP)已成为保护用户账户安全的关键环节。react-otp-input作为一款

gitblog_00334的博客 311

如何用 2 美元 ESP32-C3 搭建全屋 DNS 去广告网关:esp32-c3-adblock 完整指南

esp32-c3-adblock 是一个跑在 2 美元、不带 PSRAM 的 ESP32-C3 板子上的 Pi-hole 式 DNS 去广告网关:它把多达 53.7 万个广告域名压缩成 40 位哈希写入 Flash,对 DNS 查询做黑洞拦截,一台小板子就能覆盖全屋设备。本文从硬件、刷写、配网到全网生效,把整个流程走一遍。 ## 工作原理:50 KB RAM 如何扛住 53.7 万域名 大多数

gitblog_00252的博客 1017

ReactJS中的自定义组件

reactJS中可控的自定义组件和不可控的自定义组件

HH 1651

React Suite InlineEdit 组件完全指南:同页读取与编辑切换的实战解析

`InlineEdit` 是 React Suite 中一个简洁而强大的交互组件:它把一个自定义输入组件包裹在同页容器中,让用户在“只读展示”与“可编辑输入”两种状态之间无缝切换,无需跳转页面即可完成就地编辑。本文将基于 rsuite 仓库中的官方文档([docs/pages/components/inline-edit/en-US/index.md](https://link.gitcode.c

gitblog_00069的博客 398

React-3:组件之表单与受控非受控组件

表单 在React里,HTML表单元素的工作方式和其他的DOM元素有些不同。 一般来说,表单以及表单中的控件(如:input、select……)是页面中与JavaScript打交道最多的元素了。虽然我们可以通过ref的 形式去操作它们,但是这样会比较麻烦,React.js为我们提供了一个更好的方式把React.js中的数...

kino2046的博客 259
上一篇: 解决antd select选择器placeholder不生效
下一篇: 【js】正则过滤中文
gz-郭小敏
博客等级 码龄9年 39粉丝 112原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值