记录下解决textarea 在js赋值后不生效的问题

我要实现的是网页聊天框模拟输入一段话,然后js触发点击发送事件

然而在使用js直接赋值之后,textarea并没有收到值

document.querySelector('#id').value = 333;


又想到用按键事件触发onkeydown,onkeypress,onkeyup,然而试了半天并没有什么鸟用~

最后通过事件监听器,从textarea的事件往上级一个个删。
终于!!删到input的时候,手动输入的时候字数不再变化了!

接下来就是用触发input事件了

方法1:

这种适合被框架劫持setter事件,比如react vue

function changInputValue(inputDom,newText){let lastValue = inputDom.value;inputDom.value = newText;let event = new Event('input', { bubbles: true });event.simulated = true;let tracker = inputDom._valueTracker;if (tracker) {tracker.setValue(lastValue);}inputDom.dispatchEvent(event);
}//使用方法
var userIdDom = document.getElementById('userId');       //普通JS获取输入框Dom
changeReactInputValue(userIdDom,'username');          //改变React的输入框的值

方法二(直接触发input事件):

document.querySelector('#id').dispatchEvent(new Event('input'));

额外记录发送按键事件的时候找到的代码,最新可用

function fireKeyEvent(element, evtType, keyChar) {element.focus();var KeyboardEventInit = {key:keyChar, code:"", location:0, repeat:false, isComposing:false};var evtObj = new KeyboardEvent(evtType, KeyboardEventInit);element.dispatchEvent(evtObj);}var objInput = document.querySelector('#id');fireKeyEvent(objInput,"keydown","a11");```

javascript 模拟按键事件 触发输入框oninput事件相关推荐

  1. JavaScript实现按键快速获取输入框光标

    JavaScript实现按键快速获取输入框光标 案例池子: JS实现鼠标悬停变色 JavaScript中的排他算法实现按钮单选 JavaScript中的localStorage JavaScript中 ...

  2. Winform3、事件触发机制学习:事件的注册和定义和参数含义

    Winform3.事件触发机制学习:事件的注册和定义 在一个Form窗体中拖个按钮,双击后系统自动生成代码: // 定义事件,一般在Form.cs文件 // 默认事件是有命名规范的,控件命_事件名_个 ...

  3. JavaScript之事件触发on和事件监听addEvent及addEventListener的区别和作用

    一.on事件 为dom节点添加多个on事件只会执行最后的那个事件,因为最后的指定的on事件指向最后的那个函数,代码如下所示: function method1(){console.log('我是方法1 ...

  4. html模拟点击某个键盘按钮,如何使用JavaScript模拟按键或单击?

    模拟鼠标单击 我的猜测是网页正在监听mousedown而不是点击(这对于可访问性是不利的,因为当用户使用键盘时,只会触发焦点和点击,而不是mousedown).所以你应该模拟mousedown,cli ...

  5. 全选或双击触发了键盘keydown事件(鼠标事件触发c快捷键事件)

    程序员的日常玄学记录 遇到一个情况,在监听键盘事件的时候,单击某个地方,然后点delete能够成功监听delete键并且成功删除我想删除的东西. 但是当滑动鼠标,全选数据的时候,delete键盘事件就 ...

  6. 工作手记之移动端中文输入法触发oninput事件的解决方法

    事件背景 工作过程中涉及到了移动端输入内容长度的限定,这就要求需要对输入过程中内容的变化进行监控和判定,以决定是否可以继续输入,所以就想着是否可以在相关输入处监听oninput事件?但是在手机端,中文 ...

  7. 第二十八课:focusin与focusout,submit,oninput事件的修复

    focusin与focusout 这两个事件是IE的私有实现,能冒泡,它代表获得焦点或失去焦点的事件.现在只有Firefox不支持focusin,focusout事件.其实另外两个事件focus和bl ...

  8. 说说 input 输入框的事件

    1.从input框获取焦点到,输入值,失去焦点这个过程所有事件,以及一些特点: 过程:onfocus -> 键盘输入 -> onkeydown -> onkeypress -> ...

  9. input元素的oninput事件和onchange事件

    input元素的oninput事件和onchange事件 框架用多了,感觉原生的有点弱化了,不说了,是时候巩固一波了 ^ _ ^ 1.input元素上绑定事件的三种方式: 第一种:直接在元素标签上添加 ...

最新文章

  1. html5 网页游戏 开源,HTML5 网页游戏,基于 WebGL 打造
  2. 年终盘点篇:2018年开源市场5大发展趋势
  3. 软件架构设计——解释器模式
  4. MyBatis映射文件(二)
  5. mysql aesc_MySQL学习笔记-2
  6. SAP UI5 视图控制器 View Controller 的生命周期方法 - Lifecycle methods
  7. 项目部署到tomcat6.0启动成功后访问页面报500_.net core IIS部署教程
  8. 在Java 8之前,您编写了几行代码来对对象集合进行排序?
  9. 机器学习-python的工作目录
  10. 核心网upf作用_核心网“入门级”科普,你看了没?
  11. 美国AI公司30亿人脸数据被黑,遭科技巨头联合“封杀”
  12. IV.Indexes(索引)
  13. dirver时区_MySQL JDBC驱动程序5.1.33-时区问题
  14. FastJson之autotype bypass
  15. MIL图像库的使用——配合图像采集卡
  16. Java获取一个月每周星期一至星期日的日期
  17. 大学四年,学了这些计算机基础知识,成为了别人眼中的大神
  18. 单片机开发产品流程,照这个来没错!
  19. tftp linux 配置管理
  20. jadx在windows下的安装

热门文章

  1. 3D游戏开发基础-姜雪伟-专题视频课程
  2. 《Android开源库》 Realm For Android~ Queries(译文)
  3. mysql索引btree hash_Hash索引和BTree索引
  4. 近3三年多模态情感分析论文及其代码
  5. 微信小程序-云开发下的用户注册及用户登录逻辑
  6. 阿里云轻量服务器Workbench root远程连接和一键连接的区别
  7. 如何在windows下实现快捷命令,一键ssh连接服务器
  8. 全方位赋能“医疗生态圈” 平安医保科技携多成果亮相重庆智博会
  9. python 医学图像膝关节数据raw和mhd转换为png,jpg,bmp和tif格式, plt.savefig去白边, 坐标值和轴
  10. Mockito单元测试—verify