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