Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
358 views
in Technique[技术] by (71.8m points)

Js在控制台如何模拟键盘输入

前提是在浏览器的console控制台输入代码,可以模拟键盘输入。

想在一个input中改变value的值,input如下。

<input form="[object Object]" type="text" id="baseInfoForm_itemName" class="ant-input" value="">

在控制台中输入如下代码

$("#baseInfoForm_itemName").value = "378868653"

前端虽然改变了,但是提交的时候,仍然提示没有填写信息。

在网上查了很多资料,大部分都不行。

希望可以获得大佬的帮助。如果可以,可以详细一点。

万分感谢!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

抱歉,此前没有很认真地审题,武断地认为是用了 jQuery

但其实不是,这里的 $ 实际上是现代浏览器默认提供的一个 DOM 选择接口 window.$,但我一时找不到有关这个接口的官方文档,该函数的功能大致如下:

$(selector, startNode);
// 基本等价于:
startNode.querySelector(selector);

这里的网页极有可能用了框架,并且绑定了输入,框架不会检测 value 的变化,最好的方法是能够介入源码,在源码里修改,或者根据框架搜集事件的方法做一些 hack

看到题主找了一些 React 相关的解决方案但是没有奏效,估计是 React 修改了事件池的实现,或者用的框架不是 React

至于解决方案,不好盲猜。


以下为原答案,仅针对使用 jQuery 的情况下:

$("#userName").val(378868653);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...