我正在尝试自动填充并在由React过度的textarea上触发'Enter'keydown事件。
输入自动填充由此答案解决,非常感谢作者: https://stackoverflow.com/a/46012210/7260325
剩下的唯一问题是'Enter'键触发。 由于这个React覆盖,可用于实现该标准的JS方法似乎不起作用。 任何人都知道如何触发这些事件?
有代码:
// I target my TextArea
var input_field = document.getElementsByClassName('MyTextArea')[0];
/*
* Fill Textarea value
* Tricks the React listener override
*/
var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, "value").set;
nativeInputValueSetter.call(input_field, 'Toto And His friendssss');
var ev2 = new Event('input', { bubbles: true});
input_field.dispatchEvent(ev2);
// I try to fire the keydown 'Enter key' event
var ev3 = document.createEvent('KeyboardEvent');
// Send key '13' (= enter)
ev3.initKeyEvent(
'keydown', true, true, window, false, false, false, false, 13, 0);
input_field.dispatchEvent(ev3);
提前感谢您的帮助。
答案 0 :(得分:0)
所以,
解决方案非常简单,但我将命令混合起来触发
对于包含潜在客户的链接,请访问@enguerranws。
var ev3 = document.createEvent('KeyboardEvent');
ev3.initKeyEvent(
'keypress', true, true, window, false, false, false, false, 13, 0);
input_field.dispatchEvent(ev3);