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ī)則:長度 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ī)則:長度 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ī)則:長度 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>以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js 將線性數(shù)據(jù)轉(zhuǎn)為樹形的示例代碼
這篇文章主要介紹了js 將線性數(shù)據(jù)轉(zhuǎn)為樹形的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
關(guān)于JavaScript中JSON的5個(gè)小技巧分享
這篇文章主要和大家分享五個(gè)JavaScript中的JSON技巧,例如:隱藏字符串化數(shù)據(jù)中的某些屬性、創(chuàng)建自定義輸出格式等,感興趣的小伙伴可以了解一下2022-03-03
基于JavaScript實(shí)現(xiàn)在線網(wǎng)頁煙花效果
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)簡單的在線網(wǎng)頁煙花效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-02-02
關(guān)于scrollLeft,scrollTop的瀏覽器兼容性測(cè)試
彈窗在谷歌瀏覽器chrome下的位置跟在別的瀏覽器下不一樣,接下來介紹下scrollLeft,scrollTop的瀏覽器兼容性,感興趣的你可以參考下哈2013-03-03
javascript模擬實(shí)現(xiàn)計(jì)算器
這篇文章主要為大家詳細(xì)介紹了javascript模擬實(shí)現(xiàn)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
云開發(fā)進(jìn)階uniCloud-db組件與JQL語法的轉(zhuǎn)換詳解
這篇文章主要為大家介紹了云開發(fā)進(jìn)階uniCloud-db組件與JQL語法的轉(zhuǎn)換詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

