如何通过DOM正确更改IE上的reactjs输入值?

时间:2017-05-10 16:58:35

标签: javascript reactjs internet-explorer dom

我试图通过DOM操作在Internet Explorer上更改reactjs输入字段的值,而无需访问源代码。

document.getElementById('description').value = 'I changed description';

"描述" field是一个简单的HTML textarea with reactjs。 在这里阅读其他问题,(令人沮丧的是我无法评论它们)我发现要实际更改值,reactjs需要在字段上触发输入事件。

见到这里:What is the best way to trigger onchange event in react js

解决方案是在更改后发送以下输入事件:

var evt = new Event('input', { bubbles: true });
elem.dispatchEvent(evt);

此代码适用于Chrome和Firefox,但Internet Explorer不支持新的Event()。

它有一个polyfill:

var evt = document.createEvent('CustomEvent');
evt.initCustomEvent('input', true, false, { });
elem.dispatchEvent(evt);

出于某种原因,这只是在Edge上的IE11上工作。当我说它不起作用时,我的意思是它不适用于reactjs字段,它可以在普通的HTML5字段上工作。

最后,如何通过DOM正确更改IE11上的reactjs输入字段的值?它必须在IE上,我已经知道的其他浏览器。

0 个答案:

没有答案