【发布时间】:2019-06-23 23:14:18
【问题描述】:
如果输入字段为空,我想动态地将 setState 设置为 true。这样我就可以在每个输入字段的状态为真时通过 css 类为每个输入字段设置样式。
在我当前的代码中,它将运行循环并将最后一个空项设置为 true,即使所有输入都是空的。在我看来,我认为它应该将所有为空的内容设置为 true,但看起来循环只会识别最后一次迭代。
如何将所有为空的输入设置为 true?
HTML:
<form noValidate onSubmit={this.handleSubmit}>
<label>Name</label>
<input className="form-input" type="text" name="name">
<label>Email</label>
<input className="form-input" type="text" name="email">
<label>Message</label>
<input className="form-input" type="text" name="message">
</Form>
状态:
this.state = {
errors: {
name: false,
email: false,
message: false,
},
};
JS:
handleSubmit = (e) => {
let inputFields = document.getElementsByClassName('form-input');
for (var i = 0; i < inputFields.length; i++) {
if (inputFields[i].value === '') {
let inputName = inputFields[i].name;
this.setState({
errors: {
[inputName]: true,
},
});
}
}
}
【问题讨论】:
标签: javascript reactjs forms setstate