在React中,我希望将电子邮件验证(检查@和.com)添加到当前检查空输入字段的表单中。
我found this,它完成了这项工作,但不知道如何将它连接到onSubmit沿着我的其他验证。
下面是link to this project's codepen的完整代码。
设置输入和错误的初始状态:
constructor() {
super();
this.state = {
inputs: {
name: '',
email: '',
message: '',
},
errors: {
name: false,
email: false,
message: false,
},
};
}
JS处理输入,onBlur
updateInput = e => {
this.setState({
inputs: {
...this.state.inputs,
[e.target.name]: e.target.value,
},
errors: {
...this.state.errors,
[e.target.name]: false,
},
});
};
handleOnBlur = e => {
const { inputs } = this.state;
if (inputs[e.target.name].length === 0) {
this.setState({
errors: {
...this.state.errors,
[e.target.name]: true,
},
});
}
};
3条答案
按热度按时间z4bn682m1#
在不重构太多代码的情况下,我们可以将
updateInput()
函数更新为:另见沙盒:https://codesandbox.io/s/conditional-display-input-errors-vfmh5
olhwl3o22#
一种可能的方法是向代码中添加条件,如下所示
vsaztqbk3#
如果使用React,只需修改输入Tag,并在Tag的末尾添加
required
关键字。它还应该在
form
标记和type='submit'
v的button
内