Vue實(shí)現(xiàn)手機(jī)號、驗(yàn)證碼登錄(60s禁用倒計時)
最近在做一個Vue項(xiàng)目,前端通過手機(jī)號、驗(yàn)證碼登錄,獲取驗(yàn)證碼按鈕需要設(shè)置60s倒計時(點(diǎn)擊一次后,一分鐘內(nèi)不得再次點(diǎn)擊)。先看一下效果圖:
輸入正確格式的手機(jī)號碼后,“獲取驗(yàn)證碼”按鈕方可點(diǎn)擊;點(diǎn)擊“獲取驗(yàn)證碼”后,按鈕進(jìn)入60s倒計時,效果圖如下:
效果圖已經(jīng)有了,接下來就上代碼吧!
- html
<el-button @click="getCode()" :class="{'disabled-style':getCodeBtnDisable}" :disabled="getCodeBtnDisable">{{codeBtnWord}}</el-button>
- 數(shù)據(jù)data
data() { return { loginForm: { phoneNumber: '', verificationCode: '', }, codeBtnWord: '獲取驗(yàn)證碼', // 獲取驗(yàn)證碼按鈕文字 waitTime:61, // 獲取驗(yàn)證碼按鈕失效時間 } }
- 計算屬性computed
computed: { // 用于校驗(yàn)手機(jī)號碼格式是否正確 phoneNumberStyle(){ let reg = /^1[3456789]\d{9}$/ if(!reg.test(this.loginForm.phoneNumber)){ return false } return true }, // 控制獲取驗(yàn)證碼按鈕是否可點(diǎn)擊 getCodeBtnDisable:{ get(){ if(this.waitTime == 61){ if(this.loginForm.phoneNumber){ return false } return true } return true }, // 注意:因?yàn)橛嬎銓傩员旧頉]有set方法,不支持在方法中進(jìn)行修改,而下面我要進(jìn)行這個操作,所以需要手動添加 set(){} } }
關(guān)于上面給計算屬性添加set方法,可以參照//chabaoo.cn/article/202496.htm
- css設(shè)置不可點(diǎn)擊時置灰
.el-button.disabled-style { background-color: #EEEEEE; color: #CCCCCC; }
- mothods中添加獲取驗(yàn)證碼方法
getCode(){ if(this.phoneNumberStyle){ let params = {} params.phone = this.loginForm.phoneNumber // 調(diào)用獲取短信驗(yàn)證碼接口 axios.post('/sendMessage',params).then(res=>{ res = res.data if(res.status==200) { this.$message({ message: '驗(yàn)證碼已發(fā)送,請稍候...', type: 'success', center:true }) } }) // 因?yàn)橄旅嬗玫搅硕〞r器,需要保存this指向 let that = this that.waitTime-- that.getCodeBtnDisable = true this.codeBtnWord = `${this.waitTime}s 后重新獲取` let timer = setInterval(function(){ if(that.waitTime>1){ that.waitTime-- that.codeBtnWord = `${that.waitTime}s 后重新獲取` }else{ clearInterval(timer) that.codeBtnWord = '獲取驗(yàn)證碼' that.getCodeBtnDisable = false that.waitTime = 61 } },1000) } }
通過上面的代碼,就可以實(shí)現(xiàn)了,如有錯誤,敬請指正!
以上就是Vue實(shí)現(xiàn)手機(jī)號、驗(yàn)證碼登錄(60s禁用倒計時)的詳細(xì)內(nèi)容,更多關(guān)于vue 手機(jī)號驗(yàn)證碼登錄的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue?serve及其與vue-cli-service?serve之間的關(guān)系解讀
這篇文章主要介紹了vue?serve及其與vue-cli-service?serve之間的關(guān)系,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10Vue項(xiàng)目中components組件(模板)的使用及說明
這篇文章主要介紹了Vue項(xiàng)目中components組件(模板)的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05vue登錄以及權(quán)限驗(yàn)證相關(guān)的實(shí)現(xiàn)
這篇文章主要介紹了vue登錄以及權(quán)限驗(yàn)證相關(guān)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10vue 獲取url參數(shù)、get參數(shù)返回數(shù)組的操作
這篇文章主要介紹了vue 獲取url參數(shù)、get參數(shù)返回數(shù)組的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11