如何用JS實現(xiàn)自動倒計時30秒后按鈕才可用,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計、成都做網(wǎng)站與策劃設(shè)計,隆林網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:隆林等地區(qū)。隆林做網(wǎng)站價格咨詢:18980820575WEB開發(fā)中經(jīng)常會用到倒計時來限制用戶對表單的操作,比如希望用戶在一定時間內(nèi)看完相關(guān)協(xié)議信息才允許用戶繼續(xù)下一步操作,又比如在收取手機驗證碼時允許用戶在一定時間過后(未收到驗證碼的情況下)再次獲取驗證碼。那么今天我來給大家介紹下如何使用Javascript來實現(xiàn)這一簡單應(yīng)用。
某些網(wǎng)站注冊時要求用戶同意所謂的用戶協(xié)議之類的信息,如果協(xié)議內(nèi)容非常重要,有些網(wǎng)站會要求新注冊的用戶一定要閱讀完相關(guān)協(xié)議信息才能激活下一步按鈕提交表單。為了讓用戶能閱讀完協(xié)議信息(實際用戶有沒有真正閱讀咱不知道),開發(fā)者會設(shè)計一個倒計時比如30秒,30秒過后,表單提交按鈕才會激活生效,下面來看具體如何實現(xiàn)。
<form action="http://www.xuebuyuan.com/" method="post" name="agree">
<input type="submit" class="button" value="請認真查看 (30)" name="agreeb">
</form>
假設(shè)有上面這樣一個表單,表單的其他部分我們省略,只有一個提交按鈕,初始時按鈕不可用,當(dāng)顯示30秒倒計時結(jié)束后,按鈕就會顯示“我同意”,并且可以點擊激活。
我們用原生的js來實現(xiàn)這一效果:
<script>
var secs = 30;
document.agree.agreeb.disabled=true;
for(var i=1;i<=secs;i++) {
window.setTimeout("update(" + i + ")", i * 1000);
}
function update(num) {
if(num == secs) {
document.agree.agreeb.value =" 我 同 意 ";
document.agree.agreeb.disabled=false;
}
else {
var printnr = secs-num;
document.agree.agreeb.value = "請認真查看 (" + printnr +")";
}
}
</script>
我們設(shè)置時間為30秒,當(dāng)然你也可以設(shè)置你想要的時間,將按鈕禁用,也就是不可點擊,然后循環(huán)30秒,通過window.setTimeout調(diào)用update()函數(shù),將當(dāng)前秒與倒計時對比,如果已經(jīng)倒計時完成則顯示“我同意”,并激活按鈕。
很多網(wǎng)站在驗證用戶身份的時候需要提高用戶信息的安全性,這樣就會與用戶手機綁定,于是就會向用戶手機發(fā)送驗證碼信息,如果用戶填寫了正確的驗證碼提交后臺,那么操作才會成功。而發(fā)送驗證碼也可能由于各種原因有發(fā)送不成功的情況,又不能讓用戶不停點擊發(fā)送。如此開發(fā)者使用倒計時來處理這類問題,用戶激活短信后,如果30秒后未收到驗證碼短信則可以再允許點擊發(fā)送短信。
<form action="http://www.xuebuyuan.com/" method="post" name="myform">
<input type="button" class="button" value="獲取手機驗證碼" name="phone" onclick="showtime(30)">
</form>
上面的表單在按鈕上添加了一個onclick事件,調(diào)用了showtime()函數(shù)。
<script>
function showtime(t){
document.myform.phone.disabled=true;
for(i=1;i<=t;i++) {
window.setTimeout("update_p(" + i + ","+t+")", i * 1000);
}
}
function update_p(num,t) {
if(num == t) {
document.myform.phone.value =" 重新發(fā)送 ";
document.myform.phone.disabled=false;
}
else {
printnr = t-num;
document.myform.phone.value = " (" + printnr +")秒后重新發(fā)送";
}
}
</script>
和場景1一樣,當(dāng)點擊按鈕后,按鈕狀態(tài)為禁用,通過調(diào)用window.setTimeout的update_p()顯示倒計時,當(dāng)?shù)褂嫊r完成后,按鈕顯示“重新發(fā)送”,這時按鈕狀態(tài)為可用。
看完上述內(nèi)容,你們掌握如何用JS實現(xiàn)自動倒計時30秒后按鈕才可用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
本文標題:如何用JS實現(xiàn)自動倒計時30秒后按鈕才可用-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://jinyejixie.com/article38/jgpsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、搜索引擎優(yōu)化、用戶體驗、電子商務(wù)、微信小程序、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容