用戶註冊:結構層:html;表現層:css;行爲層:javascript;
html利用ul,li來構造:
注意事項:一、每一個Input都要有相應的id,這是在js中去調用的。
二、<a href="javascript:void(0)"></a>,添加javascript:void(0)是爲了阻止連接的跳轉。javascript
- <body>
- <div id="reg">
- <form>
- <div class="reg_title"><h1>用戶註冊</h1></div>
- <ul class="reg_con">
- <li>
- <ul class="def">
- <li><span>用戶賬號:</span><input type="text" id="uname"/></li>
- <li><p><i></i>給本身起個名字吧,它將成爲您登陸本站的用戶名</p></li>
- </ul>
- </li>
- <li>
- <ul class="def">
- <li><span>電子郵箱:</span><input type="text" id="email"/></li>
- <li><p><i></i>請輸入您的經常使用郵箱地址,此郵箱地址將做爲修改密碼</p></li>
- </ul>
- </li>
- <li>
- <ul class="def">
- <li><span>手機號碼:</span><input type="text" id="mobile"/></li>
- <li><p><i></i>請輸入您的手機號碼,方便咱們之間的聯繫</p></li>
- </ul>
- </li>
- <li>
- <ul class="def">
- <li><span>安全密碼:</span><input id="pwd" type="password"/></li>
- <li><p><i></i>請輸入安全密碼,它將做爲您的登陸密碼</p></li>
- </ul>
- </li>
- <li>
- <ul class="def ">
- <li><span>確認密碼:</span><input type="password" id="qrpwd"/></li>
- <li><p><i></i>請將上面的密碼再輸入一次</p></li>
- </ul>
- </li>
- <li>
- <ul>
- <li><span></span></li>
- <li id="reg_sub"><a href="javascript:void(0)" id="enter">當即註冊</a></li>
- </ul>
- </li>
- </ul>
- </form>
- </div>
- </body>
複製代碼
表現層:css
注意事項:一、頁面開始通常都寫上重置代碼。
二、針對用戶名、輸入框、提示圖標要寫一組自己的樣式、一組def默認的樣式、一組point得到焦點的樣式、一組error錯誤樣式、一組ok輸入正確的樣式。css
行爲層:js
js編寫的主體思路:一、中心點:每個input框,也就是獲取的inp=document.getElementsByTagName("input");
二、針對input輸入框會有點擊即得到焦點的狀態,和失去焦點的狀態。
三、當得到焦點的時候,會給用戶名、輸入框、提示圖標(改變背景圖片的位置)變成藍色,即添加point樣式。
四、當input輸入框失去焦點時,會給用戶名、輸入框、提示圖標變成紅色,即添加error樣式。
五、當input輸入框內容正確後,會給用戶名、輸入框變成。html
- /*閉包*/
- (
- function(){
- var $=function(_id){
- return document.getElementById(_id);
- }
- var inpStyle=function(){
- var inp=document.getElementsByTagName("input");//得到id爲inpList 中的全部的input
- for(i=0;i<inp.length;i++){
- inp[i].onfocus=function(){
- var par=this.parentNode.parentNode;
- var msg=par.getElementsByTagName("p")[0];
- par.className="point";
- check.focus[this.id](par,this,msg);
- }
- inp[i].onblur=function(){
- var par=this.parentNode.parentNode;
- var msg=par.getElementsByTagName("p")[0];
- par.className="def";
- check.blurs[this.id](par,this,msg);
- }
- }
- $("enter").onclick=function(){
- subback(inp);
- }
- }
- var check={
- focus:{
- uname:function(_ul,_this,_p){
- _ul.className="point";
- _p.innerHTML="<i></i>給本身起個名字吧,它將成爲您登陸本站的用戶名";
- },
- email:function(_ul,_this,_p){
- _ul.className="point";
- _p.innerHTML="<i></i>請輸入您的經常使用郵箱地址,此郵箱地址將做爲修改密碼";
- },
- mobile:function(_ul,_this,_p){
- _ul.className="point";
- _p.innerHTML="<i></i>請輸入您的手機號碼,方便咱們之間的聯繫";
- },
- pwd:function(_ul,_this,_p){
- _ul.className="point";
- _p.innerHTML="<i></i>請輸入安全密碼,它將做爲您的登陸密碼";
- },
- qrpwd:function(_ul,_this,_p){
- _ul.className="point";
- _p.innerHTML="<i></i>請將上面的密碼再輸入一次";
- }
- },
- blurs:{
- uname:function(_ul,_this,_p){//ul標籤、當前輸入框、錯誤的信息
- _ul.className="error";
- var flag=false;
- if(_this.value==""){
-
- _p.innerHTML="<i></i>用戶名不能爲空!";
- }else if(_this.value.length<3 || _this.value.length>16){
- _p.innerHTML="<i></i>用戶名長度應控制在3-16位字符之間!";
- }else if(!/^[\w_-\u4e00-\u9fa5]+$/.test(_this.value)){
- _p.innerHTML = "<i></i>用戶名只能由大小寫字母,數字,下劃線,中橫線和中文組成!";
- }else{
- _ul.className="ok";
- _p.innerHTML="<i></i>";
- flag=true;
-
- }
-
- return flag;
- },
- email:function(_ul,_this,_p){
- _ul.className="error";
- var flag=false;
- if(_this.value==""){
-
- _p.innerHTML="<i></i>郵箱不能爲空!";
- }else if(!/\w+((-w+)|(\.\w+))*\@[\w]+((\.|-)[\w]+)*\.[\w]+/.test(_this.value)){
- _p.innerHTML="<i></i>請輸入正確的郵箱地址!";
- }
- else{
- _ul.className="ok";
- _p.innerHTML="<i></i>";
- flag=true;
- }
- return flag=false;
- }
- ,
- mobile:function(_ul,_this,_p){
- _ul.className="error";
- var flag=false;
- if(_this.value==""){
-
- _p.innerHTML="<i></i>電話號碼不能爲空!";
- }else if(!/0?(13|14|15|18)[0-9]{9}/.test(_this.value)){
- _p.innerHTML="<i></i>請輸入正確的電話號碼!";
- }
- else{
- _ul.className="ok";
- _p.innerHTML="<i></i>";
- flag=true;
- }
- return flag;
- }
- ,
- pwd:function(_ul,_this,_p){
- _ul.className="error";
- var flag=false;
- if(_this.value==""){
-
- _p.innerHTML="<i></i>密碼不能爲空!";
- }else if(_this.value.length<6 || _this.value.length>16){
-
- _p.innerHTML="<i></i>密碼應該在6-16位之間!";
- }else if(!/^[\w_-]+$/.test(_this.value)){
- _p.innerHTML="<i></i>密碼只能由大小字母、數字、下劃線組成!";
- }
- else{
- _ul.className="ok";
- _p.innerHTML="<i></i>";
- flag=true;
- }
- return flag;
- }
- ,
- qrpwd:function(_ul,_this,_p){
- _ul.className="error";
- var flag=false;
- if(_this.value==""){
- _p.innerHTML="<i></i>爲了保證您輸入的密碼準確無誤,請再次輸入密碼!!";
-
- }else if(_this.value!=$("pwd").value){
-
- _p.innerHTML="<i></i>密碼兩次輸入不一致,請從新輸入!";
- }
- else{
- _ul.className="ok";
- _p.innerHTML="<i></i>";
- flag=true;
- }
- return flag;
- }
- }
- }
- var subback=function(inps){
- for(var i=0;i<inps.length;i++){
- //inps[i].focus();
-
- var flag=true;
- var par=inps[i].parentNode.parentNode;
- var msg=par.getElementsByTagName("p")[0];
-
-
- if(!check.blurs[inps[i].id](par,inps[i],msg)){
- flag=false;
- break;
- }
- }
- if(flag){
- alert("可提交");
- }<span style="background-color: rgb(255, 255, 255); line-height: 1.5;"> else{</span>