【发布时间】:2021-01-10 21:47:42
【问题描述】:
我有这个 React.js 'contact-us' 代码。我制作了三个单选按钮,但它们不起作用。我想禁用选择输入,直到我单击特定的单选按钮“服务中”。当我点击它时:选择输入将被启用,否则它保持禁用状态。
PS:我不使用函数组件,都在一个类中。
render() {
const { formErrors } = this.state;
return (
<div className='row'>
<div className='col-6'>
<h> Your Intrest : </h>
<div className='radio-btn'>
<label>
<input
type='radio'
name='service'
value={this.state.subject}
className={`for formInput ${formErrors.subject != 0 ? 'error' : null}`}
onChange={this.handleChange}
placeholder='Service'
noValidate
/> intrest in service. </label>
</div>
<div className='radio-btn'>
<label>
<input
type='radio'
name='team'
value={this.state.subject}
className={`for formInput ${formErrors.subject != 0 ? 'error' : null}`}
onChange={this.handleChange}
placeholder='Team'
noValidate
/> Join to our team. </label>
</div>
<div className='radio-btn'>
<label>
<input
type='radio'
name='another'
value={this.state.subject}
className={`for formInput ${formErrors.subject != 0 ? 'error' : null}`}
onChange={this.handleChange}
placeholder='Another'
noValidate
/> Another help.</label>
</div>
{formErrors.subject == 0 && (
<span className='errorMessage'>{formErrors.subject}</span>
)}
</div>
<div className='col-6'>
<h> Select Service: </h>
<select
type='select'
name='service'
value={this.state.service}
className={`form-control formInput ${formErrors.service.length > 0 ? 'error' : null}`}
onChange={this.handleChange}
placeholder='Service'
noValidate
disabled
>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
{formErrors.service.length > 0 && (
<span className='errorMessage'>{formErrors.service}</span>
)}
</div>
...
handleChange方法:
handleChange = (e) => {
e.preventDefault();
const { name, value } = e.target;
let formErrors = { ...this.state.formErrors };
case 'subject':
formErrors.subject = value.length < 1 ? 'Please enter a subject.' : '';
break;
case 'service':
formErrors.service = value.length < 1 ? 'Please enter a service.' : '';
break;
this.setState({ formErrors, [name]: value });
};
【问题讨论】:
-
您需要显示
onChange代码。实际上,您需要共享整个班级。理想情况下,你会做一个。 CodePen 或 Code Sandbox 有一个例子,其他人可以看看它来帮助你。
标签: javascript html reactjs forms