JavaScript(JS) 通过JS模拟textarea标签手动输入并触发事件

本文主要介绍JavaScript(JS)中,通过JS代码为textarea标签赋值,模拟用户手动输入并触发事件。
function setNativeValue(element, value) {
  const valueSetter = Object.getOwnPropertyDescriptor(element, 'value').set;
  const prototype = Object.getPrototypeOf(element);
  const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set;
  
  if (valueSetter && valueSetter !== prototypeValueSetter) {
  	prototypeValueSetter.call(element, value);
  } else {
    valueSetter.call(element, value);
  }
}

调用方法:

setNativeValue(document.getElementById('txtArea'),"cjavapy");
document.getElementById('txtArea').dispatchEvent(new Event('input', { bubbles: true }));

注意:textarea标签通过和input标签一样使用.dispatchEvent(event)触发input事件,有些情况是不生效的。所以使用上面的方法。

推荐阅读
cjavapy编程之路首页