JavaScript表單驗證的兩種實作方法
本文實例為大家分享了js表單驗證的實作方法,供大家參考,具體內容如下
第一種:js表單驗證
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册-个人用户</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <script src="//cdn.bootcss.com/jquery/3.0.0-beta1/jquery.js"></script> <style> body { font-family: Arial, "宋体", Lucida, Verdana, Helvetica, sans-serif; font-size: 12px; color: #333; line-height: 150%; background: #f2f2f2; } .hide{display:none;} .focus,.error { color: #e4393c; line-height: 36px; height: 36px; position: absolute; top: 0px; width: 260px; padding: 0 5px; background: #FFEBEB; border: 1px solid #ffbdbe; } .error span,.focus span { padding: 5px 0; line-height: 13px; display: block; } .focus { color: #666; width: 260px;; line-height: 36px; background: #f7f7f7; border: 1px solid #dddddd; } .regist { width: 990px; padding: 0; margin: 0 auto; zoom: 1; } .mc { padding: 30px 0 20px; border: solid #dddddd; border-width : 0px 1px 1px; background: #FFF; overflow: hidden; zoom: 1; border-width: 0px 1px 1px; } .form { float: left; width: 750px; font-size: 12px; } .form label,.form input,.form select,.form textarea,.form button,.form .label { float: left; font-size: 12px; } .item { padding-top: 9px; height: 60px; line-height: 34px; position: relative; z-index: 1; } .label { float: left; width: 190px; text-align: right; font-size: 14px; color: #999; padding-right: 10px; } .input { float: left; position: relative; width: 270px; overflow: visible; } .text { float: none; width: 275px; height: 37px; line-height: 32px; border: 1px solid #cccccc; font-size: 14px; font-family: arial, "宋体"; overflow: hidden; } </style> </head> <body> <p class="regist"> <p class="mc"> <form id="personRegForm" class="form" action="login.html" method="POST" onsubmit="return validateForm();"> <p class="item"> <span class="label">用户名:</span> <p class="input"> <input type="text" id="username" name="username" class="text"> <label id="username_msg" class="hide"></label> </p> </p> <p class="item"> <span class="label">请设置密码:</span> <p class="input"> <input type="password" id="password" name="password" class="text"> <label id="pwd_msg" class="hide"></label> </p> </p> <p class="item"> <span class="label">请确认密码:</span> <p class="input"> <input type="password" id="pwdRepeat" name="pwdRepeat" class="text"> <label id="pwdRepeat_msg" class="hide"></label> </p> </p> <p class="item"> <span class="label">验证邮箱:</span> <p class="input"> <input type="text" id="mail" name="mail" class="text"> <label id="mail_msg" class="hide"></label> </p> </p> <p class="item"> <span class="label"> </span> <input type="submit" class="btn-img" id="registsubmit" value="立即注册" /> </p> </form> </p> </p> <script> window.onload = function(){ // 1. 用户名 $("#username").focus(function(){ /* 获取焦点 var username_msg = $("#username_msg"); username_msg.text("4-20位字符,支持英文、数字及'-'、'_'组合"); username_msg.attr("class","focus"); */ elemFocus("username_msg","4-20位字符,支持英文、数字及'-'、'_'组合"); }).blur(userValidator); // 2. 密码 $("#password").focus(function(){ elemFocus("pwd_msg","6-20位字符,可使用字母、数字的组合"); }).blur(pwdValidator); // 3. 确认密码 $("#pwdRepeat").focus(function(){ elemFocus("pwdRepeat_msg","6-20位字符,可使用字母、数字的组合"); }).blur(pwdRepeatValidator); // 4. Email $("#mail").focus(function(){ elemFocus("mail_msg","完成验证后,可以使用该邮箱登录和找回密码"); }).blur(emailValidator); } // 定义函数 - 通用的信息提示 function elemFocus(eleId,text){ var ele_msg = $("#"+eleId); ele_msg.text(text); ele_msg.attr("class","focus"); } // 定义验证用户名的函数 function userValidator(){ // 获取用户名输入的值 var value = $("#username").val(); // 获取用于显示提示信息的元素 var username_msg = $("#username_msg"); // 验证逻辑 if(value==""||value==null){ username_msg.text("用户名不能为空"); username_msg.attr("class","error"); return false; }else if(value.length<4||value.length>20){ username_msg.text("用户名的长度不正确"); username_msg.attr("class","error"); return false; }else if(!/^[a-zA-Z0-9-_]{4,20}$/.test(value)){ username_msg.text("用户名输入不正确"); username_msg.attr("class","error"); return false; } // 验证通过修改正确样式 if(!username_msg.hasClass("hide")){ username_msg.text(""); username_msg.attr("class","hide"); } return true; } // 定义验证密码的函数 function pwdValidator(){ var value = $("#password").val(); var pwd_msg = $("#pwd_msg"); if(value==""||value==null){ pwd_msg.text("密码不能为空"); pwd_msg.attr("class","error"); return false; }else if(value.length<6||value.length>20){ pwd_msg.text("密码的长度不正确"); pwd_msg.attr("class","error"); return false; }else if(!/^[a-zA-Z0-9]{6,20}$/.test(value)){ pwd_msg.text("密码输入不正确"); pwd_msg.attr("class","error"); return false; } if(!pwd_msg.hasClass("hide")){ pwd_msg.text(""); pwd_msg.attr("class","hide"); } return true; } // 定义确认密码验证的函数 function pwdRepeatValidator(){ var value = $("#pwdRepeat").val(); var pwdRepeat_msg = $("#pwdRepeat_msg"); var pwd = $("#password").val(); if(value==""||value==null){ pwdRepeat_msg.text("密码不能为空"); pwdRepeat_msg.attr("class","error"); return false; }else if(value.length<6||value.length>20){ pwdRepeat_msg.text("密码的长度不正确"); pwdRepeat_msg.attr("class","error"); return false; }else if(!/^[a-zA-Z0-9]{6,20}$/.test(value)){ pwdRepeat_msg.text("密码输入不正确"); pwdRepeat_msg.attr("class","error"); return false; }else if(value != pwd){ pwdRepeat_msg.text("两次密码输入不一致"); pwdRepeat_msg.attr("class","error"); return false; } if(!pwdRepeat_msg.hasClass("hide")){ pwdRepeat_msg.text(""); pwdRepeat_msg.attr("class","hide"); } return true; } // 定义Email验证的函数 function emailValidator(){ var value = $("#mail").val(); var email_msg = $("#mail_msg"); if(value==""||value==null){ email_msg.text("Email不能为空"); email_msg.attr("class","error"); return false; }else if(!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value)){ email_msg.text("Email格式不正确"); email_msg.attr("class","error"); return false; } if(!email_msg.hasClass("hide")){ email_msg.text(""); email_msg.attr("class","hide"); } return true; } function validateForm(){ if(!userValidator()||!pwdValidator()||!pwdRepeatValidator()||!emailValidator()){ return false; } return true; } </script> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <style> * { padding: 0; margin: 0; } form { width: 570px; height: 300px; margin: 100px auto; } label { width: 64px; float: left; clear: left; height: 36px; line-height: 36px; margin-top: 10px; } input { width: 300px; height: 36px; line-height: 36px; margin-top: 10px; text-indent: 8px; font-size: 16px; font-family: "微软雅黑"; border: 1px solid #ccc; float: left; } #sub { width: 302px; height: 40px; border: 1px solid #ccc; background: #888; color: #fff; font-size: 18px; text-indent: 0; } .spa { height: 36px; line-height: 36px; width: 204px; display: inline-block; float: left; font-size: 12px; color: #BD362F; text-indent: 10px; margin-top: 10px; } </style> </head> <body> <form action="" method="post"> <label id="name">姓 名:</label><input type="text" name="username" id="username" value="" placeholder="请输入姓名" /><span class="spa spa1"></span><br /> <label id="phone">手机号:</label><input type="text" name="userphone" id="userphone" value="" placeholder="请输入手机号" /><span class="spa spa2"></span><br /> <label id="address">地 址:</label><input type="text" name="useraddress" id="useraddress" value="" placeholder="请输入地址" /><span class="spa spa3"></span><br /> <label> </label><input type="submit" value="注册" id="sub" /> </form> <script src="http://code.jquery.com/jquery-1.4.1.js"></script> <script type="text/javascript"> window.onload = function() { $("#username").focus() } /************************ 失焦判断 **********************************/ $("input").blur(function() { $(".spa").css("color", "#BD362F") if($(this).is("#username")) { //姓名判断 var na = /^[\u4E00-\u9FA5]{2,4}$/ if($("#username").val() != "") { if(!(na.test($("#username").val()))) { $(".spa1").text("请输入2-4个汉字"); $(this).css("border", "1px solid #BD362F") return false; } else if(na) { $(".spa1").text(""); return true; } } else { $(".spa1").text(""); } } if($(this).is("#userphone")) { //手机号判断 var ph = /^1[3|5|7|8|][0-9]{9}$/ if($("#userphone").val() != "") { if(!(ph.test($("#userphone").val()))) { $(".spa2").text("请输入正确手机号"); $(this).css("border", "1px solid #BD362F") return false; } else if(ph) { $(".spa2").text(""); return true; } } else { $(".spa2").text(""); } } if($(this).is("#useraddress")) { //地址判断 var ad = /^(?=.*?[\u4E00-\u9FA5])[\dA-Za-z\u4E00-\u9FA5]{8,32}/; if($("#useraddress").val() != "") { if(!(ad.test($("#useraddress").val()))) { $(".spa3").text("请输入正确地址"); $(this).css("border", "1px solid #BD362F") return false; } else if(ad) { $(".spa3").text(""); return true; } } else { $(".spa3").text(""); } } }) /********************** 聚焦提示 ************************/ $("input").focus(function() { if($(this).is("#username")) { $(".spa1").text("四个汉字").css("color", "#aaa") $(this).css("border", "1px solid #aaa") } if($(this).is("#userphone")) { $(".spa2").text("11位手机号码").css("color", "#aaa") $(this).css("border", "1px solid #aaa") } if($(this).is("#useraddress")) { $(".spa3").text("最少8个字符(汉字、字母和数字)").css("color", "#aaa") $(this).css("border", "1px solid #aaa") } }) /*********************** 提交验证 ***************************/ $("#sub").click(function() { var na = /^[\u4E00-\u9FA5]{2,4}$/; //姓名正则 var ph = /^1[3|5|7|8|][0-9]{9}$/; //手机号正则 var ad = /^(?=.*?[\u4E00-\u9FA5])[\dA-Za-z\u4E00-\u9FA5]{8,32}/; //地址正则 if(na.test($("#username").val()) && ph.test($("#userphone").val()) && ad.test($("#useraddress").val())) { return true; } else { if($("#username").val() == "") { $(".spa1").text('请你填写用户名') } if($("#userphone").val() == "") { $(".spa2").text('请你填写手机号') } if($("#useraddress").val() == "") { $(".spa3").text('请你填写地址') } return false; } }) </script> </body> </html>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

如何使用JS和百度地圖實現地圖平移功能百度地圖是一款廣泛使用的地圖服務平台,在Web開發中經常用於展示地理資訊、定位等功能。本文將介紹如何使用JS和百度地圖API實作地圖平移功能,並提供具體的程式碼範例。一、準備工作使用百度地圖API前,首先需要在百度地圖開放平台(http://lbsyun.baidu.com/)上申請一個開發者帳號,並建立一個應用程式。創建完成

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟,需要具體程式碼範例隨著網路和科技的快速發展,股票交易已成為許多投資者的重要途徑之一。而股票分析是投資人決策的重要一環,其中蠟燭圖被廣泛應用於技術分析。學習如何使用PHP和JS繪製蠟燭圖將為投資者提供更多直觀的信息,幫助他們更好地做出決策。蠟燭圖是一種以蠟燭形狀來展示股票價格的技術圖表。它展示了股票價格的

如何使用PHP和JS創建股票蠟燭圖股票蠟燭圖是股票市場中常見的技術分析圖形,透過繪製股票的開盤價、收盤價、最高價和最低價等數據,幫助投資者更直觀地了解股票的價格波動情形。本文將教你如何使用PHP和JS創建股票蠟燭圖,並附上具體的程式碼範例。一、準備工作在開始之前,我們需要準備以下環境:1.一台運行PHP的伺服器2.一個支援HTML5和Canvas的瀏覽器3

如何使用JS和百度地圖實現地圖點擊事件處理功能概述:在網路開發中,經常需要使用地圖功能來展示地理位置和地理資訊。而地圖上的點擊事件處理是地圖功能中常用且重要的一環。本文將介紹如何使用JS和百度地圖API來實現地圖的點擊事件處理功能,並給出具體的程式碼範例。步驟:匯入百度地圖的API檔案首先,要在HTML檔案中匯入百度地圖API的文件,可以透過以下程式碼實現:

如何使用JS和百度地圖實現地圖熱力圖功能簡介:隨著互聯網和行動裝置的快速發展,地圖成為了普遍的應用場景。而熱力圖作為一種視覺化的展示方式,能夠幫助我們更直觀地了解數據的分佈。本文將介紹如何使用JS和百度地圖API來實現地圖熱力圖的功能,並提供具體的程式碼範例。準備工作:在開始之前,你需要準備以下事項:一個百度開發者帳號,並建立一個應用,取得到對應的AP

隨著網路金融的快速發展,股票投資已經成為了越來越多人的選擇。而在股票交易中,蠟燭圖是常用的技術分析方法,它能夠顯示股票價格的變動趨勢,幫助投資人做出更精準的決策。本文將透過介紹PHP和JS的開發技巧,帶領讀者了解如何繪製股票蠟燭圖,並提供具體的程式碼範例。一、了解股票蠟燭圖在介紹如何繪製股票蠟燭圖之前,我們首先需要先了解什麼是蠟燭圖。蠟燭圖是由日本人

js和vue的關係:1、JS作為Web開發基石;2、Vue.js作為前端框架的崛起;3、JS與Vue的互補關係;4、JS與Vue的實踐應用。
