Javascript 当设置输入类型的值=”时,可能是Chrome中的错误;“文本”;使用React

Javascript 当设置输入类型的值=”时,可能是Chrome中的错误;“文本”;使用React,javascript,html,google-chrome,Javascript,Html,Google Chrome,不久前,我受聘在这个网站上做一些小改动。”http://www.clinicasaudevisual.com/contact". 我无法访问该网站的所有代码。我只能在标签底部插入任何JS代码。这很重要,我们不需要争论,我只能访问标签的底部 所以,我的问题是:我需要填写链接的输入电子邮件表单字段“http://www.clinicasaudevisual.com/contact用“非”之类的词-mandatory@host.com". 我们想使此电子邮件字段不是强制性的,但按照目前在本网站中的配置

不久前,我受聘在这个网站上做一些小改动。”http://www.clinicasaudevisual.com/contact". 我无法访问该网站的所有代码。我只能在标签底部插入任何JS代码。这很重要,我们不需要争论,我只能访问
标签的底部

所以,我的问题是:我需要填写链接的输入电子邮件表单字段“http://www.clinicasaudevisual.com/contact用“非”之类的词-mandatory@host.com". 我们想使此电子邮件字段不是强制性的,但按照目前在本网站中的配置方式,此字段是强制性的

所以我想:也许在页面加载之后,我可以很容易地做到这一点:

document.getElementsByName("Email")[0].value = "non-mandatory@host.com";
是的,它是有效的,直到我试图发送表单,这样一条消息说字段填写不正确。此表单使用React,不久前我发现为了进行此更改,我应该设置输入的值,并在最后触发带有最后一个字符的“TextEvent”事件,以便轻松通过此表单中完成的验证

好的,这一直有效到上周Chrome更新。因此,现在这种触发TextEvent的方法不再插入最后一个字符

如果您想自己检查这个假定的bug,请执行以下操作:打开“http://www.clinicasaudevisual.com/contact“在最新版本的Chrome浏览器中,加载页面后,在浏览器控制台中执行以下代码:

my_element = document.getElementsByName("Email")[0];

content = "non-mandatory@host.com";
my_element.value = content.substr(0,content.length - 1);

var my_event = document.createEvent("TextEvent");    
my_event.initTextEvent("textInput",true,false,window,content[content.length - 1]);

//For some reason react demands "focus" to be made before making any change.
my_element.focus();

my_element.dispatchEvent(my_event);
您将看到email字段将被填充(不是最后一个字母,错误已经在这里显示)。现在,点击ENVIAR按钮发送表单。您将看到出现一条错误消息,说明电子邮件无效。很明显,最新版本的chrome没有正确触发TextEvent,那么我如何修复或克服这个bug呢

PS:我只需要Chrome兼容性,不用担心IE、Firefox或其他浏览器