class Login extends React.Component { state = { play: false, }; getphone = (value) => { console.log(value.length); if (value.length == 11) { this.setState({ play: true, }); } else { this.state.play = false; } }; render() { return ( <div className="login"> <div className="login_head"> <img src={backgroundimg} alt="" /> <div className="headleft"> <Cross></Cross> </div> <div className="headbottom"> <div className="bot_fir">手机号登陆</div> <div className="bot_sec">未注册手机验证后即完成注册</div> </div> </div> <div className="login_sec"> <div className="sec_fir">手机号</div> <input type="text" placeholder="请输入手机号" onChange={(e) => { this.getphone(e.target.value); }} /> <button disabled={this.state.play ? true : false} onClick={() => { console.log("111"); }} > 发送验证码 </button> </div> </div> ); } } export default withRouter(Login);
时间: 2024-02-14 20:09:24 浏览: 89
前端框架 使用React 开发一个井字棋(2)React.Component组件介绍
这段代码是一个React组件,主要实现了一个手机号登陆的功能。在手机号输入框中,当输入的手机号长度为11位时,发送验证码的按钮才可以点击,否则按钮被禁用。
具体实现的步骤如下:
1. 在组件的state中添加一个名为play的状态,初始值为false,表示发送验证码的按钮不可点击。
```
state = {
play: false,
};
```
2. 在手机号输入框的onChange事件处理函数中,通过获取输入框的值,判断手机号长度是否为11位。如果是,则将play状态设置为true,否则设置为false。
```
getphone = (value) => {
console.log(value.length);
if (value.length === 11) {
this.setState({
play: true,
});
} else {
this.setState({
play: false,
});
}
};
```
3. 在发送验证码的按钮中,通过state中的play状态来控制按钮是否可以点击。如果play状态为true,则按钮被禁用,否则按钮可以点击。
```
<button
disabled={this.state.play ? true : false}
onClick={() => {
console.log("111");
}}
>
发送验证码
</button>
```
这样就可以实现在手机号输入框输入11位手机号时,发送验证码的按钮才可以点击的功能。
阅读全文