Javascript React.js和HTML5电子邮件验证

Javascript React.js和HTML5电子邮件验证,javascript,html,validation,reactjs,Javascript,Html,Validation,Reactjs,我的react组件中有电子邮件输入: <input type="email" autoComplete="email" placeholder="Email" required value={this.state.formData.email}

我的react组件中有电子邮件输入:

                <input
                  type="email"
                  autoComplete="email"
                  placeholder="Email"
                  required
                  value={this.state.formData.email}
                  onChange={this.handleFieldChange('email')}
                />
每次按键,直到输入为有效电子邮件。
我相信这是默认的HTML5电子邮件验证消息,因为我每次击键都会改变它的状态,react会重新发送它,HTML5会重新验证它。将类型更改为“文本”可以修复它,但我希望将其保留为“电子邮件”。为了避免那些html5警告,在react中处理这个问题的正确方法是什么?

您的输入标签在
中吗?在表单元素中添加novalidate属性以禁用HTML5验证。你确定这是HTML5验证吗?我不记得HTML5验证将错误放入控制台


听起来你真的想公开用户的输入,以防止错误消息很快出现。有几个库可以为您实现这一点。

对于受控输入,最终React必须调用,至少在Chrome 52中(我尚未使用其他浏览器进行测试),这会导致将警告记录到控制台。此警告不会出现在不受控制的输入或非反应的普通HTML5表单中


查看React源代码,特别是第162行(在v15.3.0中)中的
s.

旁注,使用此库执行React表单变得更容易:没错,这不是html5验证(消息看起来像html5)。。这是来自react的控制台警告。添加诺瓦利达无效
 The specified value "myemail" is not a valid email address.