JS實(shí)現(xiàn)表單驗(yàn)證案例
本文實(shí)例為大家分享了JS實(shí)現(xiàn)表單驗(yàn)證案例的具體代碼,供大家參考,具體內(nèi)容如下
1.當(dāng)輸入框失去焦點(diǎn)時(shí),驗(yàn)證輸入內(nèi)容是否符合要求
(1)獲取表單輸入框
(2)綁定 onblur 事件
(3)獲取輸入內(nèi)容
(4)判斷是否符合規(guī)則
(5)如果不符合規(guī)則,則顯示錯(cuò)誤提示信息
2.當(dāng)點(diǎn)擊注冊(cè)按鈕是,判斷所有輸入框的內(nèi)容是否符合要求,如果不符合則阻止表單提交
(1)獲取表單對(duì)象
(2)微表單對(duì)象綁定 onsubmit
(3)判斷所有輸入框是否都符合要求,如果符合,則返回true,如果有一項(xiàng)不符合,則返回false
<body> <div class="form-div"> ? ? <div class="reg-content"> ? ? ? ? <h1>歡迎注冊(cè)</h1> ? ? ? ? <span>已有帳號(hào)?</span> <a href="#" rel="external nofollow" >登錄</a> ? ? </div> ? ? <form id="reg-form" action="#" method="get"> ? ? ? ? <table> ? ? ? ? ? ? <tr> ? ? ? ? ? ? ? ? <td>用戶名</td> ? ? ? ? ? ? ? ? <td class="inputs"> ? ? ? ? ? ? ? ? ? ? <input name="username" type="text" id="username"> ? ? ? ? ? ? ? ? ? ? <br> ? ? ? ? ? ? ? ? ? ? <span id="username_err" class="err_msg" style="display: none">用戶名不太受歡迎</span> ? ? ? ? ? ? ? ? </td> ? ? ? ? ? ? </tr> ? ? ? ? ? ? <tr> ? ? ? ? ? ? ? ? <td>密碼</td> ? ? ? ? ? ? ? ? <td class="inputs"> ? ? ? ? ? ? ? ? ? ? <input name="password" type="password" id="password"> ? ? ? ? ? ? ? ? ? ? <br> ? ? ? ? ? ? ? ? ? ? <span id="password_err" class="err_msg" style="display: none">密碼格式有誤</span> ? ? ? ? ? ? ? ? </td> ? ? ? ? ? ? </tr> ? ? ? ? ? ? <tr> ? ? ? ? ? ? ? ? <td>手機(jī)號(hào)</td> ? ? ? ? ? ? ? ? <td class="inputs"><input name="tel" type="text" id="tel"> ? ? ? ? ? ? ? ? ? ? <br> ? ? ? ? ? ? ? ? ? ? <span id="tel_err" class="err_msg" style="display: none">手機(jī)號(hào)格式有誤</span> ? ? ? ? ? ? ? ? </td> ? ? ? ? ? ? </tr> ? ? ? ? </table> ? ? ? ? <div class="buttons"> ? ? ? ? ? ? <input value="注 冊(cè)" type="submit" id="reg_btn"> ? ? ? ? </div> ? ? ? ? <br class="clear"> ? ? </form> </div> <script> ? ? //1. 驗(yàn)證用戶名是否符合規(guī)則 ? ? //1.1 獲取用戶名的輸入框 ? ? var usernameInput = document.getElementById("username"); ? ? //1.2 綁定onblur事件 失去焦點(diǎn) ? ? usernameInput.onblur = checkUsername; ? ? function checkUsername() { ? ? ? ? //1.3 獲取用戶輸入的用戶名 ? ? ? ? var username = usernameInput.value.trim(); ? ? ? ? //1.4 判斷用戶名是否符合規(guī)則:長(zhǎng)度 6~12,單詞字符組成 ? ? ? ? var reg = /^\w{6,12}$/; ? ? ? ? var flag = reg.test(username); ? ? ? ? //var flag = username.length >= 6 && username.length <= 12; ? ? ? ? if (flag) { ? ? ? ? ? ? //符合規(guī)則 ? ? ? ? ? ? document.getElementById("username_err").style.display = 'none'; ? ? ? ? } else { ? ? ? ? ? ? //不合符規(guī)則 ? ? ? ? ? ? document.getElementById("username_err").style.display = ''; ? ? ? ? } ? ? ? ? return flag; ? ? } ? ? //1. 驗(yàn)證密碼是否符合規(guī)則 ? ? //1.1 獲取密碼的輸入框 ? ? var passwordInput = document.getElementById("password"); ? ? //1.2 綁定onblur事件 失去焦點(diǎn) ? ? passwordInput.onblur = checkPassword; ? ? function checkPassword() { ? ? ? ? //1.3 獲取用戶輸入的密碼 ? ? ? ? var password = passwordInput.value.trim(); ? ? ? ? //1.4 判斷密碼是否符合規(guī)則:長(zhǎng)度 6~12 ? ? ? ? var reg = /^\w{6,12}$/; ? ? ? ? var flag = reg.test(password); ? ? ? ? //var flag = password.length >= 6 && password.length <= 12; ? ? ? ? if (flag) { ? ? ? ? ? ? //符合規(guī)則 ? ? ? ? ? ? document.getElementById("password_err").style.display = 'none'; ? ? ? ? } else { ? ? ? ? ? ? //不合符規(guī)則 ? ? ? ? ? ? document.getElementById("password_err").style.display = ''; ? ? ? ? } ? ? ? ? return flag; ? ? } ? ? //1. 驗(yàn)證手機(jī)號(hào)是否符合規(guī)則 ? ? //1.1 獲取手機(jī)號(hào)的輸入框 ? ? var telInput = document.getElementById("tel"); ? ? //1.2 綁定onblur事件 失去焦點(diǎn) ? ? telInput.onblur = checkTel; ? ? function checkTel() { ? ? ? ? //1.3 獲取用戶輸入的手機(jī)號(hào) ? ? ? ? var tel = telInput.value.trim(); ? ? ? ? //1.4 判斷手機(jī)號(hào)是否符合規(guī)則:長(zhǎng)度 11,數(shù)字組成,第一位是1 ? ? ? ? //var flag = tel.length == 11; ? ? ? ? var reg = /^[1]\d{10}$/; ? ? ? ? var flag = reg.test(tel); ? ? ? ? if (flag) { ? ? ? ? ? ? //符合規(guī)則 ? ? ? ? ? ? document.getElementById("tel_err").style.display = 'none'; ? ? ? ? } else { ? ? ? ? ? ? //不合符規(guī)則 ? ? ? ? ? ? document.getElementById("tel_err").style.display = ''; ? ? ? ? } ? ? ? ? return flag; ? ? } ? ? //1. 獲取表單對(duì)象 ? ? var regForm = document.getElementById("reg-form"); ? ? //2. 綁定onsubmit 事件 ? ? regForm.onsubmit = function () { ? ? ? ? //挨個(gè)判斷每一個(gè)表單項(xiàng)是否都符合要求,如果有一個(gè)不合符,則返回false ? ? ? ? var flag = checkUsername() && checkPassword() && checkTel(); ? ? ? ? return flag; ? ? } </script> </body>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript庫(kù)urlcat?之URL構(gòu)建器庫(kù)
這篇文章主要介紹了JavaScript庫(kù)urlcat之URL構(gòu)建器庫(kù),urlcat?是一個(gè)小型的JavaScript庫(kù),使構(gòu)建URL非常方便并防止常見(jiàn)錯(cuò)誤。下文來(lái)看對(duì)其詳細(xì)介紹吧,需要的小伙伴可以參考一下2022-02-02JS組件Bootstrap Table表格行拖拽效果實(shí)現(xiàn)代碼
這篇文章分享了JS組件Bootstrap Table表格行拖拽效果實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12JavaScript實(shí)現(xiàn)隨機(jī)五位數(shù)驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)隨機(jī)五位數(shù)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09JavaScript登錄記住密碼操作(超簡(jiǎn)單代碼)
本文給大家分享一段簡(jiǎn)單的js代碼實(shí)現(xiàn)用戶登錄記住密碼操作,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-03-03解決layer.open彈出框不能獲取input框的值為空的問(wèn)題
今天小編就為大家分享一篇解決layer.open彈出框不能獲取input框的值為空的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JS判斷form內(nèi)所有表單是否為空的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇JS判斷form內(nèi)所有表單是否為空的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09js canvas實(shí)現(xiàn)擦除動(dòng)畫(huà)
在移動(dòng)設(shè)備上將某張圖片擦掉顯示另一張圖片,利用canvas來(lái)實(shí)現(xiàn)這篇文章就為大家詳細(xì)介紹了js canvas實(shí)現(xiàn)擦除動(dòng)畫(huà)的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-07-07