实现效果如下:
用vue写的,但实现逻辑都是一样的。
摘取出来的输入框的html部分:
//号码输入框
<input
class="login-input login-phone"
placeholder="请输入你的手机号码"
type="number"
v-model="loginNumberVal"
@input="lenControl"
/>
//验证码输入框
<input
class="login-input login-code"
placeholder="请输入短信验证码"
type="number"
v-model="loginCodeVal"
@input="lenControl"
/>
//获取验证码按钮
<input
class="getCode"
type="button"
@click.stop="toGetCode"
ref="eleCode"
:value="codeText"
/>
完整的js部分:
<script>
export default {
name: "Login",
data() {
return {
loginNumberVal: "",
loginCodeVal: "",
rightCode: 1234,
isRegistered: true, //是否已注册
isTrue: false,
codeText: "获取验证码",
timer: 5,//倒计时时间设置成五秒
};
},
components: {
},
created() {
let urlParams = this.$route.query;
if (this.$route.query.reqParams) {
this.reqParams = this.$route.query.reqParams;
} else {
this.reqParams = ``;
}
},
computed: {
//登陆按钮是否可点击
isDisabled() {
if (this.loginNumberVal && this.loginCodeVal && this.isTrue) {
return false;
}
return true;
},
isDel() {
if (this.loginNumberVal.length) {
return true;
}
return false;
},
},
methods: {
//输入框长度控制
lenControl() {
if (this.loginNumberVal.length > 11) {
this.loginNumberVal = this.loginNumberVal.slice(0, 11);
}
if (this.loginCodeVal.length > 6) {
this.loginCodeVal = this.loginCodeVal.slice(0, 6);
}
},
//号码输入框右边的那个叉
delBtn() {
this.loginNumberVal = "";
},
//验证码倒计时
codeTimer() {
let _this = this;
if (this.timer