前端表单验证总结
前言:自己正在學習前端基礎,學完了想做一個綜合性的項目驗證自己所學,在做這個項目的過程中也學到了很多其他的。
 項目簡述:做一個用戶注冊界面,采用HTML+CSS+JS對用戶填寫的信息做一個簡單的驗證并給出相應提示/警告信息。
 在每一項只展示當前用到的部分代碼 完整代碼在文章末給出
 1.文本輸入框對齊
 在文本輸入框前加一個label 并且把他的長度設為一個定值(根據你的文本輸入框前的信息而定) 右對齊
 如下:
效果如圖:
2.文本框后面給出提示信息
 之前用表格寫的時候,分成三列,中間加一個文本框,最后一列加一個空label 命名一個ID 觸發時間之后通過document.getElementById("").innerHTML="";的方式,這次用表單寫發現不行。嘗試了一下子div 發現可以。
效果入圖:
3.js函數傳參以及封裝性
 與Java c等語言同的是:在JS函數里的形參不用規定類型 他就直接是HTML句柄中寫的東西。
 比如:
注意的是在另一個函數調用這個函數的返回值的時候 要用一個var 接收 不可以直接寫
4.在JS中改變輸入框/按鈕屬性狀態
 1.采用document.getElementById(“sm”).Attribute(“disabled”,“true”);
 obj.Attribute(“屬性名”,“狀態”)
 2.直接給那個文本框/按鈕 賦值
5.完整代碼
 HTML部分代碼:
JS部分代碼
// JavaScript Documentfunction remind(target1){ //參數可以隨便命名var as="wrongmessage"+target1.id; //獲取后面提示信息所用的div的IDvar h=user_name(target1);var j=pnumber(target1);var m=user_password(target1);var e=email_check(target1);var c=check(target1);//document.getElementById("submit").disabled=false; 測試 這里的false不可以加雙引號 switch(target1.id){case "name": if(h===0)document.getElementById(as).innerHTML="用戶名長度大于4小于10,不可以有特殊符號";if(h===1)document.getElementById(as).innerHTML="輸入正確";break;case "mm":if(m===0)document.getElementById(as).innerHTML="密碼不可以有特殊符號,且長度在6-14之間";if(m===1){document.getElementById("sm").removeAttribute("disabled");document.getElementById(as).innerHTML="輸入格式正確";}break;case "sm":if(c===0)document.getElementById(as).innerHTML="請重復密碼 ";if(c===1)document.getElementById(as).innerHTML="ok";break;case "realname":document.getElementById(as).innerHTML="請輸入真實姓名";break;case "wyname":document.getElementById(as).innerHTML="給自己想一個昵稱吧";break;case "phone":if(j===0)document.getElementById(as).innerHTML="輸入手機號以便接受驗證碼";if(j===1)document.getElementById(as).innerHTML="輸入正確";break;case "Email":if(e===0)document.getElementById(as).innerHTML="填寫常用的個人郵箱(163郵箱)";if(e===1)document.getElementById(as).innerHTML="正確輸入";break;}if(h===1&&m===1&&e===1&&j===1&&c===1)document.getElementById("submit").disabled=false;} //檢查手機號格式 完成 function pnumber(target) {var as="wrongmessage"+target.id;//alert(target.value.length);if(target.value.length===11){for(let i=0;i<11;i++){if(target.value.charCodeAt(i)<48||target.value.charCodeAt(i)>58){document.getElementById(as).innerHTML="手機號必須為純數字";return 0;}}document.getElementById(as).innerHTML="正確輸入";return 1;}else{document.getElementById(as).innerHTML="手機號長度錯誤";return 0;} } //判斷用戶名 完成 function user_name(tt) {var as="wrongmessage"+tt.id;var a=firstcode(tt.value,0);var b=strlength(tt,4,20); //必須設置一個值接收函數返回值if(a===0){document.getElementById(as).innerHTML="要以數字或字母開頭";return 0;}else{if(b===0){document.getElementById(as).innerHTML="長度要在4,20之間";return 0;}document.getElementById(as).innerHTML="正確輸入";return 1;} } //判斷密碼 長度在6到14之間 僅僅為數字或字母 完成 function user_password(pa) {var as="wrongmessage"+pa.id;var a=special(pa.value,pa.value.length);var b=strlength(pa,6,14); var l=pa.value.length;if(b===0){document.getElementById(as).innerHTML="長度要在6,14之間"; return 0;}else{if(a===0){document.getElementById(as).innerHTML="密碼僅可為數字或字母";return 0;}document.getElementById(as).innerHTML="正確輸入";document.getElementById("sm").removeAttribute("disabled");return 1;} } //判斷驗證密碼是否與密碼一致 function check(str1) {var as="wrongmessage"+str1.id;var str2=document.getElementById("mm").value;if(str1.value==str2){document.getElementById(as).innerHTML="正確輸入";return 1;}else{document.getElementById(as).innerHTML="與原密碼不符";return 0;} } //判斷郵箱格式 @之前必須為數字字母 @以后為@163.com function email_check(target2) {var as="wrongmessage"+target2.id;var f=target2.value.indexOf("@");var s=special(target2.value,f);var str=target2.value.substring(f,target2.value.length);if(s===0){document.getElementById(as).innerHTML="郵箱組成僅為字母數字@.";return 0;}else{if(str=="@163.com"){document.getElementById(as).innerHTML="正確輸入";return 1;}else{document.getElementById(as).innerHTML="必須以@163.com結尾";return 0;}} } //判斷字符串長度 function strlength(target,min,max) {if(target.value.length<min||target.value.length>max)return 0;elsereturn 1; } //驗證首字母 function firstcode(str,i) {if(str.charCodeAt(i)>=48&&str.charCodeAt(i)<=57)return 1;else if(str.charCodeAt(i)>=65&&str.charCodeAt(i)<=90)return 1;else if(str.charCodeAt(i)>=97&&str.charCodeAt(i)<122)return 1;elsereturn 0; } //判斷有無特殊字符 若有 則返回0 若無 則返回1 function special(str1,th) //th為第幾位 判斷到這個數組的第幾位 {for(let i=0;i<th;i++){if(firstcode(str1,i)===0){return 0;}return 1;} }總結
                            
                        - 上一篇: 如何通俗易懂地解释欧拉公式(e^πi+1
 - 下一篇: ubuntu20.04安装微信