zoukankan      html  css  js  c++  java
  • Day5 JavaScript(三)事件、表单验证以及初识jQuery

    事件

    1)鼠标事件

    mousedown

    mouseup

    2)键盘事件

    a) keydown:键被按下

    b) keyup:键抬起

    c) keypress:按下可打印字符的键时。

    document.onkeydown = function(ev){
        if(ev.keyCode == 13){
            console.log("提交");
        }
    }

    3)焦点事件

    a) 获取焦点:focus

    b)失去焦点:blur

    4)其他事件

    a) change:选择发生改变触发事件(单选,多选,select)

    b) select:选择(下拉)

    简单实例:省市联动

    //1.数据模拟
    var arr = new Array();
    arr["北京市"]=["海淀区","昌平区","崇文区"];
    arr["上海市"]=["闵行区","徐汇区","松江区"];
    arr["重庆市"]=["北碚区","随便去"];
    
    //2.设置省份值
    var province = document.getElementsByName("province")[0];
    for(var i in arr){
        //option   value   内容区
        //创建option
        var option = new Option(i,i);
        //添加到province
        province.appendChild(option);
    }
    
    //3.设置城市
    var city = document.getElementsByName("city")[0];
    //获取选择的省份
    province.onchange = function(){
        var cities = arr[this.value];
        //清空
        city.options.length=1;
        for(var i in cities){
            var option = new Option(cities[i],cities[i]);
            city.appendChild(option);
        }
    }
                

     表单验证

    1)什么是表单验证

    前台验证。请求未发出之前进行的校验。

    2)为什么使用表单验证

    a)  减轻服务器压力

    b)  保证数据安全

    c)  提升用户体验

    3) 如何实现表单验证

    1.阻止默认提交   onsubmit   return false;

    2.验证表单项(失焦事件)   onblur

    正则表达式

    弥补字符串验证的局限性。简洁。

    符号表示

    符号

    描述

    /…/

    代表一个模式的开始和结束

    ^

    匹配字符串的开始

    $

    匹配字符串的结束

    s

    任何空白字符

    S

    任何非空白字符

    d

    匹配一个数字字符,等价于[0-9]

    D

    除了数字之外的任何字符,等价于[^0-9]

    w

    匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]

    .

    除了换行符之外的任意字符

    符号

    描述

    {n}

    匹配前一项n次

    {n,}

    匹配前一项n次,或者多次

    {n,m}

    匹配前一项至少n次,但是不能超过m次

    *

    匹配前一项0次或多次,等价于{0,}

    +

    匹配前一项1次或多次,等价于{1,}

    匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1}

    校验方式

    a) str.match(regex)

    返回值为null为不满足规范。

    b)regex.test(str)

    验证通过为true;否则为false。

    简单示例:表单提交

      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4         <meta charset="UTF-8">
      5         <title></title>
      6         <script type="text/javascript">
      7             var userPass = false;
      8             var pwdPass = false;
      9             var repwdPass = false;
     10             var mailPass = false;
     11             
     12             function regUser(ele){
     13                 var val = ele.value;
     14                 var nextSpan = ele.nextElementSibling;
     15                 var reg = /^w{6,20}$/;
     16                 console.log(reg.test(val));
     17                 if(reg.test(val)){
     18                     nextSpan.innerHTML = "用户名符合要求";
     19                     nextSpan.style.color="greenyellow";
     20                     userPass = true;            
     21                 }else{
     22                     nextSpan.innerHTML = "用户名不符合要求";
     23                     nextSpan.style.color="red";
     24                     userPass = false;
     25                 }
     26             }
     27             
     28             function regPwd(ele){
     29                 var val = ele.value;
     30                 var nextSpan = ele.nextElementSibling;
     31                 var reg = /^w{8}$/;
     32                 if(reg.test(val)){
     33                     nextSpan.innerHTML = "密码符合要求";
     34                     nextSpan.style.color="greenyellow";
     35                     pwdPass = true;
     36                 }else{
     37                     nextSpan.innerHTML = "密码不符合要求";
     38                     nextSpan.style.color="red";
     39                     pwdPass = false;
     40                 }
     41             }
     42             
     43             function regRePwd(ele){
     44                 var val = ele.value;
     45                 var pwd = document.getElementById("pwd").value;
     46                 var nextSpan = ele.nextElementSibling;
     47                 if(val != pwd){
     48                     nextSpan.innerHTML = "密码不一致";
     49                     nextSpan.style.color="red";
     50                     repwdPass = false;
     51                 }else{
     52                     nextSpan.innerHTML = "密码一致";
     53                     nextSpan.style.color="greenyellow";
     54                     repwdPass = true;
     55                 }
     56             }
     57             
     58             function regMail(ele){
     59                 var val = ele.value;
     60                 var reg = /^[A-Za-z0-9u4e00-u9fa5]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/;
     61                 var nextSpan = ele.nextElementSibling;
     62                 if(reg.test(val)){
     63                     nextSpan.innerHTML = "邮箱格式正确";
     64                     nextSpan.style.color = "greenyellow";
     65                     mailPass = true;
     66                 }else{
     67                     nextSpan.innerHTML = "邮箱格式不正确";
     68                     nextSpan.style.color = "red";
     69                     mailPass = false;
     70                 }
     71             }
     72             
     73             function regSub(){
     74                 return userPass&&pwdPass&&repwdPass&&mailPass;
     75             }
     76             
     77         </script>
     78         <style>
     79             #register{
     80                  1000px;
     81                 float: left;
     82             }
     83             form{
     84                 float: left;
     85                 margin-left: 20px;
     86             }
     87             .txt{
     88                 margin-left: 10px;
     89             
     90             }
     91             .beforeTxt{
     92                 float: left;
     93                  72px;
     94             }
     95         </style>
     96     </head>
     97     <body>
     98         <div id="register">
     99         <form action="#" method="get" onsubmit="return regSub()">
    100             <p>
    101                 <div class="beforeTxt">用户名:</div>
    102                 <input type="text" onblur="regUser(this)" name="user" class="txt" />
    103                 <span>*用户名长度为6~20位</span>
    104             </p>
    105             <p>
    106                 <div class="beforeTxt">密码:</div>
    107                 <input type="password" id="pwd" name="pwd" onblur="regPwd(this)" class="txt" />
    108                 <span>*密码长度最少为8位</span>    
    109             </p>
    110             <p>
    111                 <div class="beforeTxt">确认密码:</div>
    112                 <input type="password" onblur="regRePwd(this)" class="txt" />
    113                 <span>*密码长度最少为8位</span>    
    114             </p>
    115             <p>
    116                 <div class="beforeTxt">邮箱:</div>
    117                 <input type="text" onblur="regMail(this)" class="txt" />
    118                 <span>*邮箱格式必须正确</span>    
    119             </p>
    120             <p><input type="submit" value="注册" " /></p>
    121         </form>
    122         </div>
    123     </body>
    124 </html>
    View Code

    简单示例:简易计算器 

      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4         <meta charset="UTF-8">
      5         <title>计算器</title>
      6         
      7         <script type="text/javascript">
      8             window.onload = function(){
      9                 var divs = document.getElementsByClassName("clickBlock");
     10                 var oInput = document.getElementsByTagName("input")[0];
     11                 var str="";
     12                 for(var i in divs){
     13                     divs[i].onmousedown = function(){                    
     14                         this.style.background="red";
     15                         if(this.innerHTML ==="="){
     16                             str = eval(str);
     17                             console.log(str);
     18                             oInput.value = str;
     19                         }else{
     20                             str += this.innerHTML;
     21                             oInput.value = str;
     22                         }
     23                     }
     24                     divs[i].onmouseup = function(){                    
     25                         this.style.background="black";
     26                     }
     27                 }    
     28                 
     29             }
     30             
     31         </script>
     32         
     33         
     34         <style>
     35             #calculator{
     36                  400px;
     37                 height: 400px;
     38                 background: #ccc;
     39                 position: relative;
     40             }
     41             #input input{
     42                  330px;
     43                 height: 30px;
     44                 margin-left: 30px;
     45                 margin-top: 10px;
     46                 margin-bottom: 10px;
     47                 position: relative;
     48             }
     49             #input{
     50                 background: lawngreen;
     51             }
     52             .rows{
     53                 float: left;
     54                 background: yellow;
     55                  100%;    
     56             }
     57             ul{
     58                 height: 60px;
     59                 list-style-type: none;
     60                 float: left;
     61             }
     62             ul li{
     63             float: left;
     64             margin: 0px 20px 0px 0px;
     65             }
     66             .clickBlock{
     67                 position: relative;
     68                 text-align: center;
     69                 padding:20px;
     70                 float: left;
     71                  20px;
     72                 height: 20px;
     73                 background: black;
     74                 color: white;
     75             }
     76         </style>
     77     </head>
     78     <body>
     79         <div id="calculator">
     80             <div id="input">
     81                 <input type="text" name="txt" id="txt" readonly/>
     82             </div>
     83             
     84             <div class="rows">
     85                 <ul>
     86                     <li><div class="clickBlock">1</div></li>
     87                     <li><div class="clickBlock">2</div></li>
     88                     <li><div class="clickBlock">3</div></li>
     89                     <li><div class="clickBlock">+</div></li>
     90                 </ul>
     91             </div>
     92             
     93             <div class="rows">
     94                 <ul>
     95                     <li><div class="clickBlock">4</div></li>
     96                     <li><div class="clickBlock">5</div></li>
     97                     <li><div class="clickBlock">6</div></li>
     98                     <li><div class="clickBlock">-</div></li>
     99                 </ul>
    100             </div>
    101             
    102             <div class="rows">
    103                 <ul>
    104                     <li><div class="clickBlock">7</div></li>
    105                     <li><div class="clickBlock">8</div></li>
    106                     <li><div class="clickBlock">9</div></li>
    107                     <li><div class="clickBlock">*</div></li>
    108                 </ul>
    109             </div>
    110             
    111             <div class="rows">
    112                 <ul>
    113                     <li><div class="clickBlock">0</div></li>
    114                     <li><div class="clickBlock">.</div></li>
    115                     <li><div class="clickBlock">=</div></li>
    116                     <li><div class="clickBlock">/</div></li>
    117                 </ul>
    118             </div>
    119             
    120         </div>
    121     </body>
    122 </html>
    View Code

    jQuery

    1) 什么是jQuery

    JavaScript的函数库。    (原生)

    http://jquery.cuishifeng.cn/

    jQuery是一个快速,小巧,功能丰富的JavaScript库。它使诸如HTML文档遍历和操纵,事件处理,动画和Ajax等事情变得简单得多,而且易于使用的API可以在多种浏览器中使用。

    2) jQuery使用

    下载jQuery函数库,在script标签中引用

        cdn(内容分发网络)  

    jQuery官方CDN路径:
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js" ></script>
    Google的CDN路径:
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script>

    3) 基本语法

    $(selector).action()

      A. $()简写,jQuery

      B. selector:选择器

      C. action():操作

    4) 选择器

    a) 基本选择器

    //1.id选择器
    //document.getElementById("div1");   //dom对象
    console.log($("#div1"));   //jQuery对象:dom对象的封装
    //2.类选择器
    console.log($(".box"));
    //3.标签选择器
    console.log($("div"));
    //4.通配选择器
    console.log($("*"));

    b) 层级选择器

    //1.后代选择器
    console.log($("ul span"));
    //2.子代选择器
    console.log($("ul > span"));
    //3.相邻选择器(后面的一个)
    console.log($("#p1 + h2"));
    //4.同辈选择器(后面的所有)
    console.log($("#p1 ~ h2"));

    c) 基本筛选器

    //1.第一项
    console.log($("li:first"));
    //2.最后一项
    console.log($("li:last"));
    //3. =
    console.log($("li:eq(1)"));
    //4. >
    console.log($("li:gt(1)"));
    //5. <
    console.log($("li:lt(1)"));
    //6. 奇数
    console.log($("li:odd"));
    //7.偶数
    console.log($("li:even"));

    d) 可见性

    console.log($(":hidden"));
    console.log($(":visible"));

    e) 属性选择器

    //根据属性的名称获取元素
    console.log($("[id]"));
    //属性等于某值
    console.log($("[id='p1']"));
  • 相关阅读:
    SQL SEREVR IO
    INTEL
    windows performance
    The DiskSpd Storage Performance Tool
    machine Learning
    NOSQL
    X64 Deep Dive
    Debugging and performance,ETW
    Disk Performance
    WCF transport-and-message-security
  • 原文地址:https://www.cnblogs.com/qingyunzong/p/8321101.html
Copyright © 2011-2022 走看看