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事件,有些情况是不生效的。所以使用上面的方法。