DOM编程示例(二)

邮件相关操作

<!DOCTYPE html>
<html>
  <head>
    <title>mail.html</title>

    <meta name="content-type" content="text/html; charset=gbk">
    <link rel="stylesheet" href="table.css" type="text/css"/>
    <style type="text/css" media="screen">
        /*@import url(table.css);*/
        .one{
            background-color: #9bf7d5;
        }
        .two{
            background-color: #f3e99a;
        }
        .over{
            background-color: #ef7125;
        }
    </style>
    <script type="text/javascript" charset="utf-8">

        var name;
        //行颜色间隔显示功能
        function trColor(){
            //1.获取表格对象
            var oTabNode=document.getElementById("mailtable");

            //2.获取行对象
            var collTrNodes=oTabNode.rows;

            //3.对所有需要设置背景的行对象进行遍历
            for(var x=1;x<collTrNodes.length-1;x++){
                if(x%2==1){
                    collTrNodes[x].className="one";
                }else{
                    collTrNodes[x].className="two";
                }
                collTrNodes[x].onmouseover=function(){
                    name=this.className;
                    this.className="over";
                };
                collTrNodes[x].onmouseout=function(){
                    this.className=name;
                };
            }

        }
        表格加载完运行
        onload=function(){
            trColor();
        };

        //对于复选框的全选动作
        function checkAll(node){
            //获取所有的mail复选框
            var collMailNodes=document.getElementsByName("mail");
            for(var x=0;x<collMailNodes.length;x++){
                collMailNodes[x].checked=node.checked;
            }
        }

        //定义操作复选框按钮的方法
        function checkAllByBut(num){
            var collMailNodes=document.getElementsByName("mail");
            for(var x=0;x<collMailNodes.length;x++){

                if(num>1)
                    collMailNodes[x].checked=!collMailNodes[x].checked;
                else
                    collMailNodes[x].checked=num;
            }

        }

        //删除所选邮件
        function deletMail(){

            if(!confirm("真的要删除所选邮件吗?")){
                return;
            }
            //获取所有mail节点
            var collMailNodes=document.getElementsByName("mail");
            for(var x=0;x<collMailNodes.length;x++){

                if(collMailNodes[x].checked){
                    var oTrNode=collMailNodes[x].parentNode.parentNode;
                    oTrNode.parentNode.removeChild(oTrNode);
                    x--;
                }

            }  
            trColor();          
        }
    </script>

  </head>

  <body>
    <table id="mailtable">
        <tr>
            <th>
                <input type="checkbox" name="all" onclick="checkAll(this)"/>全选
            </th>
            <th>
                发件人
            </th>
            <th>
                收件人
            </th>
            <th>
                邮件附属信息
            </th>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="mail"/>
            </td>
            <td>
                龙葵
            </td>
            <td>
                邮件1
            </td>
            <td>
                千年不灭,唯情而已11
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="mail"/>
            </td>
            <td>
                龙葵2
            </td>
            <td>
                邮件2
            </td>
            <td>
                千年不灭,唯情而已22
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="mail"/>
            </td>
            <td>
                龙葵3
            </td>
            <td>
                邮件3
            </td>
            <td>
                千年不灭,唯情而已33
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="mail"/>
            </td>
            <td>
                龙葵4
            </td>
            <td>
                邮件4
            </td>
            <td>
                千年不灭,唯情而已44
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="mail"/>
            </td>
            <td>
                龙葵5
            </td>
            <td>
                邮件5
            </td>
            <td>
                千年不灭,唯情而已55
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="mail"/>
            </td>
            <td>
                龙葵6
            </td>
            <td>
                邮件6
            </td>
            <td>
                千年不灭,唯情而已66
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="mail"/>
            </td>
            <td>
                龙葵7
            </td>
            <td>
                邮件7
            </td>
            <td>
                千年不灭,唯情而已77
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="mail"/>
            </td>
            <td>
                龙葵8
            </td>
            <td>
                邮件8
            </td>
            <td>
                千年不灭,唯情而已88
            </td>
        </tr>

        <tr>
            <th>
                <input type="checkbox" name="all" onclick="checkAll(this)"/>全选
            </th>
            <th colspan="3">
                <input type="button" value="全选" onclick="checkAllByBut(1)"/>
                <input type="button" value="取消全选" onclick="checkAllByBut(0)"/>
                <input type="button" value="反选" onclick="checkAllByBut(2)"/>
                <input type="button" value="删除所选邮件" onclick="deletMail()"/>
            </th>
        </tr>

    </table>
  </body>
</html>

其中,table.css代码:

@CHARSET "UTF-8";
table{
    border: #0066FF 1px solid;
    width: 500px;
    border-collapse: collapse;
}

table td{
    border: #249bdb 1px solid;
    padding:5px;
}
table th{
    border: #249bdb 1px solid;
    padding:5px;
    background-color: rgb(200,200,200);
}

调查问卷与性格测试

<!DOCTYPE html>
<html>
  <head>
    <title>radio.html</title>

    <meta name="content-type" content="text/html; charset=gbk">
    <style type="text/css" media="screen">
        #contentid{
            display:none;
        }

        #no1ul{
            list-style:none;
            margin:0px;
        }
        .close{
            display: none;
        }
        .open{
            display: block ;
        }
    </style>
    <script type="text/javascript" charset="utf-8">
        function showResult(){
            //1.判断是否有答案被选中
            //获取所有No.1的radio,并遍历判断checked的状态
            var oNo1Nodes=document.getElementsByName("No.1");
            var flag=false;
            var val=0;
            for(var x=0;x<oNo1Nodes.length;x++){
                if(oNo1Nodes[x].checked){
                    flag=true;
                    val=oNo1Nodes[x].value;
                    break;
                }
            }
            if(!flag){
                document.getElementById("errinfo").innerHTML="没有任何答案被选中".fontcolor("red");
                return;
            }else{
                document.getElementById("errinfo").className="close";
            }
            if(val>=1&&val<=3){
                document.getElementById("res_1").className="open";
                document.getElementById("res_2").className="close";
            }
            else{
                document.getElementById("res_1").className="close";
                document.getElementById("res_2").className="open";              
            }

        }
    </script>
  </head>

  <body>
    <!--
        1.是否参与调查问卷?
        2.性格测试

        -->


        <!--性格测试-->

        <h2>欢迎您参与性格测试:</h2>
        <div>
            <h3>第一题:</h3>
            <span>您喜欢的水果是什么?</span>
            <ul id="no1ul">
                <li><input type="radio" name="No.1" value="1" />葡萄</li>
                <li><input type="radio" name="No.1" value="2" />桃子</li>
                <li><input type="radio" name="No.1" value="3" />苹果</li>
                <li><input type="radio" name="No.1" value="4" />香蕉</li>

            </ul>
        </div>
        <div>
            <input type="button" value="查看测试结果:" onclick="showResult()"/>
            <span id="errinfo"> </span>
            <div id="res_1" class="close">1-3分:您的性格很内向</div>
            <div id="res_2" class="close">4分以上:您的性格外向</div>
        </div>





        <hr/>
        <script type="text/javascript" charset="utf-8">
            function showContent(node){
                var oDivNode=document.getElementById("contentid");
/*
                if(node.value=='yes'){
                    oDivNode.style.display="block";
                }else{
                    oDivNode.style.display="none";
                }*/
                with(oDivNode.style){
                    if(node.value=='yes'){
                        display="block";
                    }else{
                        display="none";
                    }
                }
            }
        </script>
        <!--问卷调查-->
        <div>
        您要参与问卷调查吗:<br/>
        <input type="radio" name="wenjuan" value="yes" onclick="showContent(this)"/><input type="radio" name="wenjuan" value="no"  checked="checked" onclick="showContent(this)"/></div>
        <div id="contentid">
        问卷调查内容:<br/>
        您的姓名:<input type="text"/><br/>
        您的邮箱:<input type="text"/>
        </div>

  </body>
</html>

下拉菜单(颜色选择)

<!DOCTYPE html>
<html>
  <head>
    <title>select.html</title>

    <meta name="content-type" content="text/html; charset=gbk">
    <style type="text/css">
    .clrclass{
        height:50px;
        width:50px;
        float:left;
        margin-right:30px;
    }
    #text{
        clear:left;
        margin-top:20px;
    }
    </style>

  </head>

  <body>
    <!--

    -->
    <script type="text/javascript">
       function changeColor(node){
           var colorVal=node.style.backgroundColor;

           document.getElementById("text").style.color=colorVal;

       }
    </script>
    <div class="clrclass" id="clr1" style="background-color:red" onclick="changeColor(this)"> </div>
    <div class="clrclass" id="clr2" style="background-color:green" onclick="changeColor(this)"> </div>
    <div class="clrclass" id="clr3" style="background-color:blue" onclick="changeColor(this)"> </div>
    <div id="text">
        君不见黄河之水天上来<br/>
        奔流到海不复回<br/>
        君不见高堂明镜悲白发<br/>
        朝成青丝暮成雪<br/>
        人生得意须尽欢<br/>
        莫使金樽空对月<br/>
        天生我材必有用<br/>
        千金散去还复来<br/>
    </div>
    <hr/>

    <script type="text/javascript">
       function changeColor2(){
           var oSelectNode=document.getElementsByName("selectcolor")[0];
          /*
           //获取所有的option
           var collOptionNodes=oSelectNode.options;

           alert(collOptionNodes[oSelectNode.selectedIndex].innerHTML);
       */
      /*
          with(oSelectNode){
           var collOptionNode=options;
           alert(collOptionNodes[x].innerHTML);
          }
          */

         var colorVal=oSelectNode.options[oSelectNode.selectedIndex].value;
         document.getElementById("text").style.color=colorVal;
       }
    </script>
    <select name="selectcolor" onchange="changeColor2()">
       <option value="black">--选择颜色--</option>
       <option value="red">红色</option>
       <option value="green">绿色</option>
       <option value="blue">蓝色</option>
    </select>

       <script type="text/javascript">
       function changeColor3(){
         var oSelectNode=document.getElementsByName("selectcolor2")[0];

         var colorVal=oSelectNode.options[oSelectNode.selectedIndex].value;
         document.getElementById("text").style.color=colorVal;
       }
    </script>

    <select name="selectcolor2" onchange="changeColor3()" class="selClass">
       <option style="background-color:black" value="black">--选择颜色--</option>
       <option style="background-color:red" value="red"> </option>
       <option style="background-color:green" value="green"> </option>
       <option style="background-color:blue" value="blue"> </option>
    </select>
  </body>
</html>

下拉菜单(二级联动菜单)

<!DOCTYPE html>
<html>
  <head>
    <title>selectCity.html</title>

    <meta name="content-type" content="text/html; charset=gbk">
    <style type="text/css">
        select{
        width:100px;
        }
    </style>

  </head>

  <body>
    <script type="text/javascript">
        function selectCity(){

            var collCities=[[],['海淀区','朝阳区','东城区','西城区']
                            ,['武汉','咸宁','宜昌','荆门']
                            ,['成都','南充','乐山','绵阳']
                            ,['青岛','济南','烟台','威海']];



            //var arr={"beijing":['海淀区','朝阳区','东城区','西城区']};
            //获取两个下拉菜单对象
            var oSelNode=document.getElementById("selid");
            var oSubSelNode=document.getElementById("subselid");
            //获取到底选择的是哪个省
            var index=oSelNode.selectedIndex;
            //通过角标到容器去获取对应的城市数组
            var arrCities=collCities[index];

/*
            //将子菜单的内容清空一下

            for(var x=0;x<oSubSelNode.options.length;){
                oSubSelNode.removeChild(oSubSelNode.options[x]);

            }*/
            //清除动作
            oSubSelNode.length=0;

            //遍历这个数组并将这个数组的元素封装成option对象,添加到子菜单中
            for(var x=0;x<arrCities.length;x++){
                var oOptNode=document.createElement("option");
                oOptNode.innerHTML=arrCities[x];
                oSubSelNode.appendChild(oOptNode);
            }

        }
    </script>
    <select id="selid" onchange="selectCity()">
        <option>选择省份</option>
        <option>北京</option>
        <option>湖北</option>
        <option>四川</option>
        <option>山东</option>


    </select>
    <select id="subselid">
        <option>选择区域</option>

    </select>

  </body>
</html>

随机生成验证码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
/**
 * @author Administrator
 */
//验证码  ,4位的,由字符,数字组成.
function createCode() {
    var datas = ["A", "B", "C", "D", "E", "F", "G", "H", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
    //随机的从数组中取出4个元素.
    var mess = "";
    var index = 0;
    for (var i = 0; i < 4; i++) {
        //生成随机数.而且是在数组的长度范围内.
        //0-9之间的随机数. Math.floor(Math.random()*10)
        //0到数组长度(不包含)之间的浮点数.,向下取整,
        var index = Math.floor(Math.random() * datas.length);
        mess += datas[index];
    };
    //
    var codeSpan = window.document.getElementById("codeSpan");
    codeSpan.style.color = "red";
    codeSpan.style.fontSize = "20px";
    codeSpan.style.background = "gray";
    codeSpan.style.fontWeight = "900";
    codeSpan.style.fontStyle = "italic";
    codeSpan.style.textDecoration = "line-through";
    codeSpan.innerHTML = mess;
    codeSpan.value = mess;
}
createCode();
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>javascript</title>
</head>
<body>
    <span id="codeSpan"></span><a href="#" onclick="createCode()">看不清楚</a>

</body>
</html>

添加附件

<!DOCTYPE html>
<html>
  <head>
    <title>addfile.html</title>

    <meta name="content-type" content="text/html; charset=gbk">
    <style type="text/css" media="screen">
        table a:link,table a:visted{
            color:#F3E99A;
            text-decoration: none;
        }
        table a:hover{
            color :#9BF7D5;
        }
    </style>

    <script type="text/javascript" charset="utf-8">
        function addFile(){

            /**
             *因为文件选取框定义在行对象中
             * 所以只要给表格创建新的行和单元格即可
             *  
             */
            var oTabNode=document.getElementById("fileid");

            var oTrNode=oTabNode.insertRow();

            var oTdNode_file=oTrNode.insertCell();

            var oTdNode_del=oTrNode.insertCell();

            oTdNode_file.innerHTML="<input type='file'/>";
            // oTdNode_del.innerHTML="<a href='javascript:void(0)' onclick='deleteFile(this)'>删除附件</a>";      

            oTdNode_del.innerHTML="<img src='1.jpg' alt='删除附件' onclick='deleteFile(this)'/>";


        }

        function deleteFile(node){

            var oTrNode=node.parentNode.parentNode;
            oTrNode.parentNode.removeChild(oTrNode);
        }
    </script>

  </head>

  <body>
      <table id="fileid">
          <tr>
              <td><a href="javascript:void(0)" onclick="addFile()">添加附件</a></td>
          </tr>
          <!-- <tr>
              <td><input type="file"/></td>
              <td><a href="javascript:void(0)>删除附件</a></td>
          </tr> -->
      </table>


  </body>
</html>

校验表单

正则表达式

位置:

    ^       开头
    $      结尾

次数:

    *       0或多个
    +       1或多个
    ?       0或1个
    {n}     就是n个
    {n,}    至少n个
    {n,m}   最少n个,最多m个

通配符:

    \d      任意数字
    \D      任意非数字
    \s      任意空白
    \S      任意非空白
    .       任意字符(除'\n'外)

组合:

    [a-z]
    [0-9]
    等

组:

    (正则)        匹配括号中正则表达式对应的结果,并暂存这个结果。
    (?:正则)  匹配括号中正则表达式对应的结果,但不暂存这个结果。
    \数字     使用第n个组匹配的结果

使用正则的工具(RegExp类与相关方法)
创建:

    // 方式一
    var regex = new RegExp("正则表达式", "标志");
    // 方式二
    var regex = /正则表达式/标志

标志:

g (全文查找出现的所有 pattern) 
i (忽略大小写) 
m (多行查找) 

方法:

    Regexp.test( str )
    String.replace( regex, str )
<!DOCTYPE html>
<html>
  <head>
    <title>form.html</title>

    <meta name="content-type" content="text/html; charset=gbk">


  </head>

  <body>
    <!--

        表单校验
    -->

    <script type="text/javascript" charset="gbk">
//     
        // //校验用户名
        // function checkUser(){
            // var flag;
            // var oUserNode=document.getElementsByName("user")[0];
            // // alert(oUserNode.value);
            // var name=oUserNode.value;
//             
            // //定义正则表达式
            // var reg=new RegExp("^[a-z]{4}$","i");//必须是四个字母
//             
            // // reg=new ReExp("^[0-9]{4}$");//必须是四个数字  ^\\d{4}$ 正则表达式需转义  因为有引号
//             
            // reg=/^[0-9]{4}$/;//  ^\d{4}$  不需要转义
//             
            // var oSpanNode=document.getElementById("userspan");
//             
            // // if(name=="abc"){
                // if(reg.test(name)){
                // oSpanNode.innerHTML="用户名正确".fontcolor("green");   
                // flag=true;     
                // // oSpanNode.innerHTML="<img src='ok.jpg'/>";
            // }else{
                // oSpanNode.innerHTML="用户名错误".fontcolor("red");
                // flag=false;
            // }
            // return flag;
// 
        // }
//         
        /**
         *发现很多框的校验除了几个内容 不同以外,校验的过程是一样的
         * 所以进行了代码的提取
         *  
         */
        function check(name,reg,spanId,okinfo,errinfo){
             var flag;
            var val=document.getElementsByName(name)[0].value;

            var oSpanNode=document.getElementById(spanId);

                if(reg.test(val)){
                oSpanNode.innerHTML=okinfo.fontcolor("green");   
                flag=true;     
                // oSpanNode.innerHTML="<img src='ok.jpg'/>";
            }else{
                oSpanNode.innerHTML=errinfo.fontcolor("red");
                flag=false;
            }
            return flag;
        }

        //校验用户名
        function checkUser(){
            var reg=/^[0-9]{4}$/;
           return check("user",reg,"userspan","用户名正确","用户名错误");

        }

        //校验密码
        function checkpsw(){
            var reg=/^\d{4}$/;
            return check("psw",reg,"pswspan","密码格式正确","密码格式错误");
        }

        //确认密码。只要和密码一直就可
        function recheckpsw(){
            var flag;
            //获取密码框内容
            var pass=document.getElementsByName("psw")[0].value;
            //获取确认密码框内容
            var repass=document.getElementsByName("repsw")[0].value;

            //获取确认密码的span区域
            var oSpanNode=document.getElementById("repswspan");
             if(pass==repass){
                oSpanNode.innerHTML="两次密码一致".fontcolor("green");   
                flag=true;     
                // oSpanNode.innerHTML="<img src='ok.jpg'/>";
            }else{
                oSpanNode.innerHTML="两次密码不一致".fontcolor("red");
                flag=false;
            }
            return flag;
        }


        //校验邮件
        function checkmail(){
            var reg=/^\w+@\w+(\.\w+)+$/i;
            return check("mail",reg,"mailspan","邮件格式正确","邮件格式错误");
        }

        //提交事件处理
        function checkForm(){
            if(checkUser()&&checkpsw()&&recheckpsw()&&checkmail())
                return true;
            return false;
        }



        function mySubmit(){
            var oFormNode=document.getElementById("userinfo");
            oFormNode.submit();
        }
    </script>

    <form onsubmit="return checkForm()">
    <!-- <form id="userinfo"> -->
            用户名称<input type="text" name="user" onblur="checkUser()"/>
     <span id="userspan"> </span>       
     <br/>       

            输入密码<input type="text" name="psw" onblur="checkpsw()"/>
     <span id="pswspan"> </span> 
     <br/>

            输入密码<input type="text" name="repsw" onblur="recheckpsw()"/>
     <span id="repswspan"> </span> 
     <br/>

            邮件地址<input type="text" name="mail" onblur="checkmail()"/>
     <span id="mailspan"> </span> 
     <br/>

     <input type="submit" value="提交数据"/>
    </form>
    <hr/>
            <!-- 自定义提交按钮 (提交组件)-->
    <input type="button" value="我的提交" onclick="mySubmit()"/>

  </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值