admin管理员组文章数量:1421018
I have an email input in my react ponent:
<input
type="email"
autoComplete="email"
placeholder="Email"
required
value={this.state.formData.email}
onChange={this.handleFieldChange('email')}
/>
which throws me a warning in the console:
The specified value "myemail" is not a valid email address.
with each keystroke till the input is a valid email. I believe this is default HTML5 email validation message and since I change its' state with each keystroke, react rerenders it and HTML5 re-validates it. Changing the type to "text" fixes it, but I would love to keep it as "email". What would be a proper way to handle this in react in order to avoid those html5 warnings?
I have an email input in my react ponent:
<input
type="email"
autoComplete="email"
placeholder="Email"
required
value={this.state.formData.email}
onChange={this.handleFieldChange('email')}
/>
which throws me a warning in the console:
The specified value "myemail" is not a valid email address.
with each keystroke till the input is a valid email. I believe this is default HTML5 email validation message and since I change its' state with each keystroke, react rerenders it and HTML5 re-validates it. Changing the type to "text" fixes it, but I would love to keep it as "email". What would be a proper way to handle this in react in order to avoid those html5 warnings?
Share Improve this question asked Aug 16, 2016 at 22:52 Stewie GriffinStewie Griffin 9,34722 gold badges72 silver badges98 bronze badges 1- 1 On a sidenote, doing React forms bees much easier with this lib: github./prometheusresearch/react-forms – Ashish Chaudhary Commented Aug 17, 2016 at 0:56
2 Answers
Reset to default 4For a controlled input, ultimately React has to call Element.prototype.setAttribute()
, and at least in Chrome 52 (I've yet to test with other browsers) this results in a warning being logged to the console. This warning does not show up with uncontrolled inputs, or with a non-React, vanilla HTML5 form.
Check out DOMPropertyOperations.setValueForProperty()
in the React source, specifically line 162 (in v15.3.0) for <input>
s.
Are your input tags in a <form>
? Add the novalidate attribute the form element to disable HTML5 validation. Are you sure it is HTML5 validation ? I don't recall HTML5 validation putting errors in the console.
Sounds like you really want to denounce the users input to prevent the error message ing up to soon. There are several libraries out there that will do that for you.
本文标签: javascriptReactjs and HTML5 email validationStack Overflow
版权声明:本文标题:javascript - React.js and HTML5 email validation - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745338589a2654156.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论