用js制作163登陆页面终极版(写了一晚上)

用js制作163登陆页面终极版(写了一晚上),有些功能还不太完善,有兴趣的可以去自己再实现一些功能,基本上所有的功能我都实现了,只有少数的没有实现,里面还有一些正则表达式的运用,主要还是用表格设计的,没有用div,下次上传div的。

下面看HTML代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>mischen</title>
    <script src="util.js"></script>
</head>
   <center>

    <form action="test.html" method="get" name="phoneForm">
        <table width="400px" id="phone">
            <tr>
                <td colspan="3" align="center">
                    <img src="注册字母邮箱.bmp" onclick="showMailForm()"/>
                    <img src="注册手机号邮箱.bmp"/>
                </td>
            </tr>
            <tr>
                <td align="right">*手机号码</td>
                <td width="50%"><input type="text" name="phoneNum" style="width:100%;" onchange="valiPhone(this)"/></td>
                <td>@163.com</td>
            </tr>
            <tr>
                <td> </td>
                <td colspan="2" >
                    <span style="color: grey;font-size: 10px;" id="phoneMsg">请填写手机号码</span>
                </td>
            </tr>
            <tr>
                <td align="right">*短信验证码</td>
                <td width="50%" colspan="2"><input type="text" name="valiCode" style="width:100%;" onchange="valiCode1(this)"/></td>
            </tr>
            <tr>
                <td> </td>
                <!-- colspan  表示  跨两列      rowspan    表示跨两行-->
                <td colspan="2" >
                    <span style="color: grey;font-size: 10px;" id="codeMsg">请查收手机短信,并填写短信中的验证码</span>
                </td>
            </tr>
            <tr>
                <td align="right">*密码</td>
                <td width="50%" colspan="2"><input type="password" name="pwd" style="width:100%;" onchange="valiPwd(this)"/></td>
            </tr>
            <tr>
                <td> </td>
                <!-- colspan  表示  跨两列      rowspan    表示跨两行-->
                <td colspan="2" >
                    <span style="color: grey;font-size: 10px;" id="pwdMsg">6~16个字符,区分大小写</span>
                </td>
            </tr>
            <tr>
                <td align="right">*确认密码</td>
                <td width="50%" colspan="2"><input type="password" name="repwd" style="width:100%;" onchange="valiRepwd(this)"/></td>
            </tr>
            <tr>
                <td> </td>
                <!-- colspan  表示  跨两列      rowspan    表示跨两行-->
                <td colspan="2" colspan="2">
                    <span style="color: grey;font-size: 10px;" id="repwdMsg">请再次填写密码
                    </span>
                </td>
            </tr>
            <tr>
                <td> </td>
                <td colspan="2">
                    <img src="提交.bmp"  onclick="subForm()"/>
                </td>
            </tr>
            </table>
    </form>
    <form action="test.html" method="get" style="display:none" name="mailForm">
       <table width="400px">
        <tr>
            <td colspan="3" align="center">
                <img src="注册字母邮箱2.bmp" />
                <img src="注册手机邮箱2.bmp" onclick="showPhoneForm()"/>

            </td>
        </tr>
        <tr>
            <td align="right">*邮件地址</td>
            <td width="50%"><input type="text" name="phoneNum" style="width:100%;" onchange="mailAddr(this)"/></td>
            <td>@<select>
                <option value="163.com" selected>163.com</option>
                <option value="126.com">126.com</option>
                <option value="yeah.net">yeah.net</option>
            </select></td>
        </tr>
        <tr>
            <td> </td>
            <!-- colspan  表示  跨两列      rowspan    表示跨两行-->
            <td colspan="2" >
                <span style="color: grey;font-size: 10px;" id="mailMsg">6~18个字符,可使用字母、数字、下划线,需以字母开头</span>
            </td>
        </tr>
        <tr>
            <td align="right">*密码</td>
            <td width="50%" colspan="2"><input type="text" name="phoneNum1" style="width:100%;" onchange="mailPwd(this)"/></td>
        </tr>
        <tr>
            <td> </td>
            <!-- colspan  表示  跨两列      rowspan    表示跨两行-->
            <td colspan="2" >
                <span style="color: grey;font-size: 10px;" id="pwdMsg1">6~16个字符,区分大小写</span>
            </td>
        </tr>
        <tr>
            <td align="right">*确认密码</td>
            <td width="50%" colspan="2"><input type="text" name="phoneNum2" style="width:100%;" onchange="mailrePwd(this)"/></td>
        </tr>
        <tr>
            <td> </td>
            <!-- colspan  表示  跨两列      rowspan    表示跨两行-->
            <td colspan="2" colspan="2">
                    <span style="color: grey;font-size: 10px;" id="rePwdMsg1">请再次填写密码
                    </span>
            </td>
        </tr>
        <tr>
            <td align="right">*手机号码</td>
            <td width="50%" colspan="2"><input type="text" name="phoneNum" style="width:100%;" onchange="mailPhone(this)"/></td>
        </tr>
        <tr>
            <td> </td>
            <!-- colspan  表示  跨两列      rowspan    表示跨两行-->
            <td colspan="2" colspan="2">
                    <span style="color: grey;font-size: 10px;" id="mailPhoneMsg">忘记密码时,可以通过该手机号码快速找回密码
                    </span>
            </td>
        </tr>
        <tr>
            <td align="right">*验证码</td>
            <td width="50%" colspan="2"><input type="text" name="phoneNum" style="width:100%;"/></td>
        </tr>
        <tr>
            <td> </td>
            <!-- colspan  表示  跨两列      rowspan    表示跨两行-->
            <td colspan="2" colspan="2">
                    <span style="color: grey;font-size: 10px;">请填写图片中的字符,不区分大小写
                    </span>
            </td>
        </tr>
        <tr>
            <td align="right">*短信验证码</td>
            <td width="50%" colspan="2"><input type="text" name="phoneNum" style="width:100%;"/></td>
        </tr>
        <tr>
            <td> </td>
            <!-- colspan  表示  跨两列      rowspan    表示跨两行-->
            <td colspan="2" colspan="2">
                    <span style="color: grey;font-size: 10px;">请查收手机短信,并填写短信中的验证码
                    </span>
            </td>
        </tr>
        <tr>
            <td> </td>
            <td colspan="2">
                <img src="提交.bmp" onclick="sumForm()"/>
            </td>
        </tr>
    </table>
</form>
       </center>
<body>

</body>
</html>
<script>
    var phoneForm=document.phoneForm;
    var mailForm=document.forms[1];
    //设置四个状态分别代表每个表单的验证结果
    var phoneResult=false;
    var codeResult=false;
    var pwdResult=false;
    var repwdResult=false;
    //显示邮箱注册的表单
    function showMailForm(){
        phoneForm.style.display="none";
        mailForm.style.display="block";
    }
    function showPhoneForm(){
        phoneForm.style.display="block";
        mailForm.style.display="none";
    }
    function mailAddr(mailObj){
        var val1=mailObj.value;
        var mailMsg=$("#mailMsg");
        if(!val1){
            mailMsg.innerHTML="<font color='red'>邮箱地址不能为空</font>";
            return false;
        }else if(!(/^[a-zA-Z]\w{5,17}$/.test(val1))) {
                mailMsg.innerHTML="<font color='red'>邮箱地址必须为6~18个字符,可使用字母、数字、下划线,需以字母开头</font>";
                return false;
        }else{
            mailMsg.innerHTML="请填写邮件地址";
            return true;
        }

    }
    function mailPhone(phoneObj1){
        var val=phoneObj1.value;
        var phoneMsg=$("#mailPhoneMsg");
        if(!val){
            phoneMsg.innerHTML="<font color='red'>手机号不能为空</font>";
            //phoneResult=false;
            return false;
        }else if(val.length!=11){
            phoneMsg.innerHTML="<font color='red'>手机号长度只能为11位</font>";
            //phoneResult=false;
            return false;
        }else{
            phoneMsg.innerHTML="请填写手机号码";
            //phoneResult=true;
            return true;
        }
    }
    function valiPhone(phoneObj){
        var val=phoneObj.value;
        var phoneMsg=$("#phoneMsg");
        if(!val){
            phoneMsg.innerHTML="<font color='red'>手机号不能为空</font>";
            //phoneResult=false;
            return false;
        }else if(val.length!=11){
            phoneMsg.innerHTML="<font color='red'>手机号长度只能为11位</font>";
            //phoneResult=false;
            return false;
        }else{
            phoneMsg.innerHTML="请填写手机号码";
            //phoneResult=true;
            return true;
        }
    }
    function valiCode1(codeObj){
        var val=codeObj.value;
        var codeMsg=$("#codeMsg");
        if(!val){
            codeMsg.innerHTML="<font color='red'>验证码不能为空</font>";
//            codeResult=false;
            return false;
        }else if(val.length!=6){
            codeMsg.innerHTML="<font color='red'>验证码长度只能为6位</font>";
//            codeResult=false;
            return false;
        }else{
            codeMsg.innerHTML="请查收手机短信,并填写短信中的验证码";
//            codeResult=true;
            return true;
        }
    }
    function mailPwd(pwdObj1){
        var val2=pwdObj1.value;
        var pwdMsg1=$("#pwdMsg1");
        if(!val2){
            pwdMsg1.innerHTML="<font color='red'>密码不能为空</font>";
//            pwdResult=false;
            return false;

        }else if(val2.length<6||val2.length>16){
            pwdMsg1.innerHTML="<font color='red'>密码长度只能为6-16位</font>";
//            pwdResult=false;
            return false;
        }else{
            pwdMsg1.innerHTML="6~16个字符,区分大小写";
//            pwdResult=true;
            return true;
        }
    }
    function valiPwd(pwdObj){
        var val=pwdObj.value;
        var pwdMsg=$("#pwdMsg");
        if(!val){
            pwdMsg.innerHTML="<font color='red'>密码不能为空</font>";
//            pwdResult=false;
            return false;

        }else if(val.length<6||val.length>16){
            pwdMsg.innerHTML="<font color='red'>密码长度只能为6-16位</font>";
//            pwdResult=false;
            return false;
        }else{
            pwdMsg.innerHTML="6~16个字符,区分大小写";
//            pwdResult=true;
            return true;
        }
    }
    function mailrePwd(repwdObj1){
        var val3=repwdObj1.value;
        var comValue=repwdObj1.form["phoneNum1"].value;
        var repwdMsg1=$("#rePwdMsg1");
        if(val3!=comValue){
            repwdMsg1.innerHTML="<font color='red'>两次密码输入不一致</font>";
//            repwdResult=false;
            return false;
        }else{
            repwdMsg1.innerHTML="请再次填写密码";
//            repwdResult=true;
            return true;
        }

    }
    function valiRepwd(repwdObj){
        var val=repwdObj.value;
        //repwdObj  表单域对象     表单域对象.form   获取form表单对象   form表单对象.表单域name    表单域对象
        var comValue=repwdObj.form["pwd"].value;
        var repwdMsg=$("#repwdMsg");
        if(val!=comValue){
            repwdMsg.innerHTML="<font color='red'>两次密码输入不一致</font>";
//            repwdResult=false;
            return false;
        }else{
            repwdMsg.innerHTML="请再次填写密码";
//            repwdResult=true;
            return true;
        }
    }
    function subForm(){
        //用四种结果  进行判断
        //var result=phoneResult&&codeResult&&pwdResult&&repwdResult;
        //分别再执行一次表单验证  返回结果
//        alert(valiCode1($("valiCode")[0])); 用于测试
        var result=valiPhone($("phoneNum")[0])&&valiCode1($("valiCode")[0])&&valiPwd($("pwd")[0])&&valiRepwd($("repwd")[0]);
        if(result){
            phoneForm.submit();
        }else{
            alert("表单填写有误,请确认后再提交");
        }
    }
    function sumForm(){

    }

</script>

下面是js代码:

/**
 *
 * @param idOrName  如果传入id  前面加上#   如果传入name  直接传入
 * @returns {*}  返回元素节点  如果没找到 返回null
 */
function $(idOrName){
    var obj=null;
    if(idOrName){
        if(idOrName.charAt(0)=="#"){
            obj=document.getElementById(idOrName.substring(1));
        }else{
            obj=document.getElementsByName(idOrName);
        }
    }
    return obj;
}
/**
 *
 * @param parentNode  父节点
 * @returns {Array}  所有的元素子节点
 */
function getChildNodes(parentNode){
    var childs=parentNode.childNodes;
    var newChilds=[];
    for(var i=0;i<childs.length;i++){
        if(childs[i].nodeType==1){
            newChilds.push(childs[i]);
        }
    }
    return newChilds;
}
/**
 *
 * @param parentNode 父节点
 * @returns {*|Node}   第一个元素节点
 */
function getFirstChild(parentNode){
    var firstChild=parentNode.firstChild;
    if(firstChild.nodeType==3){
        firstChild=firstChild.nextSibling;
    }
    return firstChild;

}
/**
 *
 * @param parentNode 父节点
 * @returns {*|Node}   最后一个元素节点
 */
function getLastChild(parentNode){
    var lastChild=parentNode.lastChild;
    if(lastChild.nodeType==3){
        lastChild=lastChild.previousSibling;
    }
    return lastChild;
}
/**
 *
 * @param node  元素节点
 * @returns {*|Node}  返回下一个兄弟元素节点
 */
function getNextSibling(node){
    var nextNode=node.nextSibling;
    if(nextNode.nodeType==3){
        nextNode=nextNode.nextSibling;
    }
    return nextNode;
}
/**
 *
 * @param node  元素节点
 * @returns {*|Node}  返回前一个兄弟元素节点
 */
function getPreviousSibling(node){
    var preNode=node.previousSibling;
    if(preNode.nodeType==3){
        preNode=preNode.previousSibling;
    }
    return preNode;
}

界面实现效果如下:

时间: 2024-10-10 06:56:28

用js制作163登陆页面终极版(写了一晚上)的相关文章

Easyui登陆页面制作

一.登陆页面HTML <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.EasyUITest.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu

html+js实现简单的登陆页面

初学web自动化,学习简单的前端知识还是很有必要的: 今天我们利用html实现一个简单的登陆页面,并利用js提取用户名和密码,在alert弹窗中显示出来 实现的功能: 1.实现重置按钮的功能,点击重置按钮,能清除你填写的数据 2.填写用户名,密码,点击登录,获取到用户名和密码通过alert提示框展示出来. 页面如图: 代码如下: <!DOCTYPE html><html> <head> <title>登陆.html</title> </he

js实现登陆页面的拖拽功能

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>登陆页面的拖拽功能实现</title> </head> <style type="text/css"> *{ margin:0; padding:0; } a{ text-decoration: none; } .dialog{ width: 380px;

用JS制作一个信息管理平台完整版

  前  言 JRedu 在之前的文章中,介绍了如何用JS制作一个实用的信息管理平台. 但是那样的平台功能过于简陋了,我们今天来继续完善一下. 首先我们回顾一下之前的内容.   1.JSON的基础知识 1.1  什么是JSON JSON是数据交互中,最常用的一种数据格式. 由于各种语言的语法都不相同,在传递数据时,可以将自己语言中的数组.对象等转换为JSON字符串. 传递之后,可以将JSON字符串,再解析为JSON对象. JSON对象的使用与JS中的对象基本相同,唯一需要区别的是,JSON中的键

【Bootstrap】一个PC、平板、手机同一时候使用并且美观的登陆页面

Bootstrap如同前台框架,它已经布置好不少的CSS.前端开发的使用须要则直接调用就可以.其站点的网址就是http://www.bootcss.com.使用Bootstrap能降低前端开发时候在CSS样子的布置时间 须要使用Bootstrap先在官网(点击打开链接)下载组件就可以,用于生产环境的Bootstrap版本号(点击打开链接),Bootstrap3对2并不兼容,建议直接依据其开发文档使用Bootstrap3. 将Bootstrap解压之后把得到的3个目录css,fonts,js复制到

JSP制作简单登陆

JSP制作简单登陆界面 运行环境 eclipse+tomcat+MySQL 不知道的可以参考Jsp运行环境--Tomcat 项目列表 这里我先把jsp文件先放在Web-INF外面访问 需要建立的几个文件在图上.jsp 还要导入MySQL的jar包mysql-5.0.5.jar,导到WEB-INF中的lib文件夹就可以不需要Bulid Path 开始编写代码: 代码演示: index.jsp就好像一般网站的首页一样感觉,将header.jsp和footer.jsp引入其中 <%@ page lan

aiax登陆页面

登陆页面 <title>无标题文档</title> <script src="../jquery-1.11.2.min.js"></script> </head> <body> <h1>登陆</h1> <div>用户名:<input type="text" id="uid" /></div> <div>密

Android笔记-4-实现登陆页面并跳转和简单的注册页面

实现登陆页面并跳转和简单的注册页面 首先我们来看看布局的xml代码 login.xml <span style="font-family:Arial;font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

js 获取元素在页面上的偏移量的最佳方式

使用js制作效果时,我们常常要获取某个元素在页面上的偏移量(例如tip提示框功能).而获取偏移量可以直接获取相对于document的偏移量,也可以获取相对与视口的偏移量(viewpoint)加上页面滚动量(scroll)获得. 1.获取相对与document的偏移量 function getOffsetSum(ele){ var top= 0,left=0; while(ele){ top+=ele.offsetTop; left+=ele.offsetLeft; ele=ele.offsetP