【发布时间】:2019-11-01 13:16:09
【问题描述】:
我只想在输入为空时添加红色边框。我找不到在 React 中“添加类”的方法,所以我正在使用状态。现在代码将为所有输入添加红色边框,即使它有文本。
状态:
this.state = {
inputBorderError: false,
};
HTML/JSX:
<label>Name</label>
<input className={
this.state.inputBorderError ? 'form-input form-input-fail' : 'form-input'
} />
<label>Email</label>
<input className={
this.state.inputBorderError ? 'form-input form-input-fail' : 'form-input'
} />
<label>Message</label>
<textarea className={
this.state.inputBorderError ? 'form-input form-input-fail' : 'form-input'
} />
CSS:
.form-input-fail {
border: 1px solid red;
}
JS:
let inputFields = document.getElementsByClassName('form-input');
for (var i = 0; i < inputFields.length; i++) {
if (inputFields[i].value === '') {
this.setState({
inputBorderError: true,
});
}
}
我在我的代码中看到了错误,因为它基本上是在找到空输入时将状态设置为 true。我想我可能会错误地处理这个问题,因为只有一个状态。是否有基于我的状态方法的解决方案,或者是否有其他解决方案?
【问题讨论】:
-
嗨,Eric,试试我的解决方案中的代码框,我认为它应该涵盖所有基础。如果您有任何问题,请告诉我。
-
@ChristopherNgo 我正在考虑添加简单的电子邮件验证。对此有一个线程,可以使用您的专业知识:stackoverflow.com/questions/56676342/…
标签: javascript reactjs forms