最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實(shí)現(xiàn)移動端短信驗(yàn)證碼流程介紹

 更新時(shí)間:2022年10月08日 15:18:02   作者:阿選不出來  
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)移動端發(fā)送短信驗(yàn)證碼案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

實(shí)戰(zhàn)效果演示

實(shí)現(xiàn)原理

準(zhǔn)備: 一個(gè)輸入框, 四個(gè)div小盒子

原理: 監(jiān)聽input輸入框,分別讓輸入的四個(gè)數(shù)字展現(xiàn)在那四個(gè)小盒子里,在運(yùn)用css知識,讓四個(gè)小盒子覆蓋輸入框.

附上動畫:

代碼部分

HTML

<div class="val-box" id="val-box">
    <input type="text" id="val-code-input" maxlength="4" onkeyup="checkNum(this)" onblur="checkNum(this)">
    <div name="val-item"></div>
    <div name="val-item"></div>
    <div name="val-item"></div>
    <div name="val-item"></div>
</div>

JS

首先聊聊 checkNum() 函數(shù), 當(dāng)我們輸入驗(yàn)證碼的時(shí)候,難免會有人輸入一些非數(shù)字的字符進(jìn)去, checkNum() 的作用就是將所有輸入的不是數(shù)字的字符轉(zhuǎn)換為空值.

function checkNum(e) {
    e.value = e.value.replace(/[\D]/g,'')
}

我們要做的第一步就是獲取元素,數(shù)據(jù)初始化, 并且讓用戶一開始輸入就去聚焦到輸入框內(nèi).

const valBox = document.querySelector(".val-box")
// 輸入框一被點(diǎn)擊就聚焦到輸入框
valBox.addEventListener("click", () => {
    console.log("聚焦");
    valCodeInput.focus()
})

第二步, 即時(shí)的反映輸入框內(nèi)的值

// 獲取div小盒子
const valCodeItems = document.getElementsByName("val-item")
// 獲取輸入框
const valCodeInput = document.querySelector("#val-code-input")
const regex = /^[\d]+$/
// 驗(yàn)證碼初始長度為0
let valCodeLength = 0
valCodeInput.addEventListener("input", (e) => {
    valCodeLength = valCodeInput.value.length
    // 如果輸入的值符合要求
    if(valCodeInput.value && regex.test(valCodeInput.value)) {
        // 讓div下邊框邊藍(lán)
       valCodeItems[valCodeLength - 1].classList.add('available');
        // div的值與input的值相對應(yīng)
        valCodeItems[valCodeLength - 1].innerText = valCodeInput.value.substring(valCodeLength - 1, valCodeLength)
    }
})

點(diǎn)擊獲取驗(yàn)證碼或點(diǎn)擊第一個(gè)數(shù)字輸入框時(shí)獲取焦點(diǎn), 并添加available 樣式,使得第一個(gè)小盒子地邊框邊藍(lán)

valCodeItems[0].addEventListener("click", (e) => {
    valCodeInput.focus()
    valCodeItems[0].classList.add("available")
})

第三步, 完善刪除鍵,當(dāng)刪除鍵抬起的時(shí)候,刪除最后一個(gè)小盒子內(nèi)的數(shù)字,并去除下邊框變藍(lán)效果

window.addEventListener("keyup", (e) => {
    if(e.keyCode === 8) {
        valCodeItems[valCodeLength].innerText = ""
        if(valCodeLength !== 0) {
            valCodeItems[valCodeLength].classList.remove("available")
        }
    }
})

接下來就是最后一步啦, 當(dāng)檢測到輸入框的長度變?yōu)?時(shí),自動發(fā)送短信驗(yàn)證請求.

到此這篇關(guān)于JavaScript實(shí)現(xiàn)移動端短信驗(yàn)證碼流程介紹的文章就介紹到這了,更多相關(guān)JS短信驗(yàn)證碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js replace正則表達(dá)式應(yīng)用案例講解

    js replace正則表達(dá)式應(yīng)用案例講解

    js replace與正則表達(dá)式結(jié)合,可以有效發(fā)揮replace的功效,可以幫助用戶解決替換中的復(fù)制問題,接下來詳細(xì)介紹使用方法,感興趣的朋友可以了解下
    2013-01-01
  • js圖數(shù)據(jù)結(jié)構(gòu)處理 迪杰斯特拉算法代碼實(shí)例

    js圖數(shù)據(jù)結(jié)構(gòu)處理 迪杰斯特拉算法代碼實(shí)例

    這篇文章主要介紹了js圖數(shù)據(jù)結(jié)構(gòu)處理 迪杰斯特拉算法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • js控制TR的顯示隱藏

    js控制TR的顯示隱藏

    在很多現(xiàn)實(shí)的場景中,有的文本框我們希望在選擇“是”的按鈕之后才出現(xiàn),這就需要js控制TR的隱藏和顯示,如何控制,本文為大家揭曉
    2016-03-03
  • JavaScript使用URL.canParse驗(yàn)證URL的方法詳解

    JavaScript使用URL.canParse驗(yàn)證URL的方法詳解

    JavaScript誕生以來,一直沒有一種簡單的方法驗(yàn)證URL,現(xiàn)在JavaScript新增了一個(gè)新方法——URL.canParse,文中通過代碼示例和圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • JS父頁面與子頁面相互傳值方法

    JS父頁面與子頁面相互傳值方法

    這篇文章主要介紹了使用JS在父頁面和子頁面間相互傳值方法,子頁面可以是window.open彈出的,也可以是iframe框架中的頁面,需要的朋友可以參考下
    2014-03-03
  • js canvas實(shí)現(xiàn)寫字動畫效果

    js canvas實(shí)現(xiàn)寫字動畫效果

    這篇文章主要為大家詳細(xì)介紹了js canvas實(shí)現(xiàn)寫字動畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • uniapp中table表格設(shè)置寬度無效的原因以及解決方法

    uniapp中table表格設(shè)置寬度無效的原因以及解決方法

    項(xiàng)目中遇到table表格單元格不整齊、錯位等情況,下面這篇文章主要給大家介紹了關(guān)于uniapp中table表格設(shè)置寬度無效的原因以及解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • JavaScript基于ChatGPT實(shí)現(xiàn)打字機(jī)消息回復(fù)

    JavaScript基于ChatGPT實(shí)現(xiàn)打字機(jī)消息回復(fù)

    ChatGPT 是一個(gè)基于深度學(xué)習(xí)的大型語言模型,處理自然語言需要大量的計(jì)算資源和時(shí)間,響應(yīng)速度肯定比普通的讀數(shù)據(jù)庫要慢的多,本文介紹了ChatGPT打字機(jī)消息回復(fù)實(shí)現(xiàn)原理,感興趣的同學(xué)可以跟著小編一起學(xué)習(xí)
    2023-05-05
  • js帶按鈕的提示框可供選擇示例代碼

    js帶按鈕的提示框可供選擇示例代碼

    本文為大家介紹下使用js實(shí)現(xiàn)可以供選擇的彈出框,具體的實(shí)現(xiàn)如下,感性的朋友可以參考下,希望對大家學(xué)習(xí)有所幫助
    2013-09-09
  • 詳解JavaScript的計(jì)時(shí)器和按鈕效果設(shè)置

    詳解JavaScript的計(jì)時(shí)器和按鈕效果設(shè)置

    這篇文章主要為大家介紹了JavaScript的計(jì)時(shí)器和按鈕效果設(shè)置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12

最新評論

巴林左旗| 方正县| 郑州市| 佳木斯市| 新津县| 寿光市| 平安县| 红原县| 滨海县| 志丹县| 静乐县| 绍兴县| 岫岩| 大石桥市| 乳山市| 泸定县| 永仁县| 钟山县| 安塞县| 晋中市| 鸡东县| 梅河口市| 宜兰县| 瓦房店市| 侯马市| 东阿县| 清涧县| 南召县| 乐至县| 武功县| 北流市| 突泉县| 北川| 镇康县| 禹州市| 化德县| 文昌市| 隆尧县| 祁连县| 页游| 延寿县|