html部分
<div class="form-code"> <input type="number" v-model="codeVer" placeholder="請輸入驗證碼" /> <button type="button" @click="getCode()" :class="{on:showBtnOn}" v-text="codeText"></button> </div>
codeText按鈕上顯示的文字;
getCode為按鈕點擊事件;
codeVer為驗證碼;
showBtnOn:是否添加button上的class on
css部分,按鈕點擊的時候給一個灰色背景:
.form-code button.on{background-color:#999}
在date中定義雙向綁定的部分
data: { howBtnOn:false, codeVer:'', codeText:'獲取驗證碼' },
點擊方法getCode開始倒計時:
var time = 60; var timer = setInterval(function(){ time--; vm.codeText = time+"秒重發" vm.showBtnOn = true;
//time==0 時,倒計時結束,按鈕切換為原來的顏色,清除定時器
if(time==0){ clearInterval(timer); vm.codeText = "獲取驗證碼"; vm.showBtnOn = false; } },1000);