zoukankan      html  css  js  c++  java
  • Javascript案例学习

    一、使用JS完成注册表单数据校验

    1.需求分析

        用户在进行注册的时候会输入一些内容,但是有些用户会输入一些不合法的内容,这样会导致服务器的压力过大,此时我们需要对用户输入    的内容进行一个校验(前端校验和后台校验),前端校验防君子不防小人。

        

     2.技术分析

    2.1 javasscript的介绍 

         

    Java与javascript有什么区别?

    它们没有关系,雷锋和雷峰塔的关系。

    2.2 javascript的作用

    HTML:它是整个网站的骨架。

    CSS:它是对整个网站骨架的内容进行美化(修饰) Javascript:它能够让整个页面具有动态效果。

    2.3 javascript的组成部分 

         

    ECMAScript:它是整个javascript的核心,包含(基本语法、变量、关键字、保留字、数据类型、语句、函数等等)

    DOM:文档对象模型,包含(整个html页面的内容)、

    BOM:浏览器对象模型,包含(整个浏览器相关内容)

    2.4 javascript语法

    区分大小写 

    变量是弱类型的(String str=”aaa” ,var str=”123”;) 每行结尾的分号可有可无(建议大家写上) 注释与java、php等语言相同。

    2.5javascript的变量

    变量可以不用声明,变量是弱类型。统一使用var来定义!定义变量的时候不要使用关键字和保留字。

    2.6 javascript数据类型

    Javascript数据类型分为原始数据类型和引用数据类型原始数据类型:

     string、number、boolean、null、undefined 引用数据类型:

    2.7 javascript运算符

    其它运算符与java大体一致,需要注意其等性运算符。

    == 它在做比较的时候会进行自动转换。

    === 它在做比较的时候不会进行自动转换。

    2.8 javascript语句

    所有语句与java大体一致。

    2.9 获取元素内容

    获取元素

    document.getElementById(“id名称”); 获取元素里面的值

    document.getElementById(“id名称”).value;

    2.10 javascript事件

    表单提交事件:onsubmit

    2.11 javascripte的输出

    警告框:alert();

    向页面指定位置写入内容:innerHTML(属性) 向页面写入内容:document.write(“”);

    3.步骤分析

    第一步:确定事件(onsubmit)并为其绑定一个函数

    第二步:书写这个函数(获取用户输入的数据<获取数据时需要在指定位置定义一个id>)

    第三步:对用户输入的数据进行判断第四步:数据合法(让表单提交)

    第四步:数据合法(让表单提交

    第五步:数据非法(给出错误提示信息,不让表单提交)

     

    问题:如何控制表单提交?

     关于事件onsubmit:一般用于表单提交的位置,那么需要在定义函数的时候给出一个返回值。 onsubmit = return checkForm()

    4.代码实现

    JS代码:

     1 <script type="text/javascript">
     2             function checkForm() {
     3                 //校验用户名
     4                 //1.获取用户的输入
     5                 var uValue = document.getElementById("user").value;
     6                 //2. 对用户输入的数据进行判断
     7                 if(uValue=="") {
     8                     //3. 给出错误提示信息
     9                     alert("用户名不能为空!");
    10                     return false;
    11                 }
    12                 //校验密码
    13                 var pValue = document.getElementById("password").value;
    14                 if(pValue=="") {
    15                     alert("密码不能为空");
    16                     return false;
    17                 }
    18                 //校验确认密码
    19                 var repValue = document.getElementById("repassword").value;
    20                 if(pValue!=repValue) {
    21                     alert("两次输入密码不一致!");
    22                     return false;
    23                 }
    24                 //校验邮箱
    25                 var eValue = document.getElementById("email").value;
    26                 if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(eValue)) {
    27                     alert("邮箱输入有误!");
    28                     return false;
    29                 }
    30             }
    31         </script>

    Html部分:

    <form action="#" method="get" name="regist" onsubmit="return checkForm()">

    需要在指定位置添加id 

    二、使用JS完成首页轮播图效果案例

    1.需求分析

    我们希望在首页完成对轮播图的效果实现:

     

     

    2.技术分析


    获取元素 document.getElementById(“id名称”)

     事件(onload)  定时操作:setInterval(“changeImg()”,3000); 

    3.步骤分析

      第一步:确定事件(onload)并为其绑定一个函数

      第二步:书写绑定的这个函数

      第三步:书写定时任务(setInterval)

      第四步:书写定时任务里面的函数

    4.代码实现

    JS代码:

     1 <script>
     2             function init() {
     3                 //轮换图的定时任务
     4                 setInterval("changeImg()", 3000);
     5             }
     6             var i = 0;
     7             //更换图片的方法
     8             function changeImg() {
     9                 //获取轮换图片img元素
    10                 var imgEle = document.getElementById("changeImg");
    11                 i++;
    12                 //设置路径属性
    13                 imgEle.src = "../img/" + i + ".jpg";
    14                 if(i==3) {
    15                     i=0;
    16                 }    
    17             }
    18         </script>

    HTML代码:

    <body onload="init()">
    <img src="../img/1.jpg" width="100%" id="changeImg" />

    在指定位置添加id

    三、使用JS完成页面定时弹出广告

    1.需求分析

    我们希望在首页中的顶部做一个定时弹出广告图片。其实现效果如下:

     

    2.技术分析

      获取图片的位置(document.getElementById(“”))

      隐藏图片:display:none 定时操作:setInterval(“显示图片的函数”,3000);

    3.步骤分析

       第一步:在页面指定位置隐藏一个广告图片(使用display属性的none值)

        第二步:确定事件(onload)并为其绑定一个函数

       第三步:书写这个函数(设置一个显示图片的定时操作)

       第四步: 书写定时器中的函数(获取广告图片的位置并设置属性style的display值block)

       第五步:清除显示图片的定时操作()

       第六步:书写隐藏图片的定时操作

       第七步:书写定时器中的函数(获取广告图片的位置并设置属性style的display值none) 第八步:清除隐藏图片的定时操作()

    4.代码实现

     

        js代码:

             

     1 function init() {
     2     //轮换图的定时任务
     3     setInterval("changeImg()", 3000);
     4     
     5     //1. 设置显示广告的定时操作
     6     time = setInterval("showAd()", 3000);
     7 }
     8 var i = 0;
     9 //更换图片的方法
    10 function changeImg() {
    11     //获取轮换图片img元素
    12     var imgEle = document.getElementById("changeImg");
    13     i++;
    14     //设置路径属性
    15     imgEle.src = "../img/" + i + ".jpg";
    16     if(i==3) {
    17         i=0;
    18     }    
    19 }
    20 
    21 //2. 显示广告的方法
    22 function showAd() {
    23     //获取广告图片位置的元素
    24     var imgAd = document.getElementById("imgAd")
    25     //设置该元素的属性style的display值为block
    26     imgAd.style.display = "block";
    27     //3. 清除显示图片的操作
    28     clearInterval(time);
    29     //4. 隐藏图片的定时操作
    30     time = setInterval("clearAd()", 3000);
    31 }
    32 
    33 //5. 隐藏图片的方法
    34 function clearAd() {
    35     //获取广告图片位置的元素
    36     var imgAd = document.getElementById("imgAd");
    37     //设置该元素的属性style的display值为none
    38     imgAd.style.display = "none";
    39     
    40     //6. 清楚隐藏图片的定时操作
    41     clearInterval(time);
    42 }

        Html代码:

         

    <body onload="init()">

         广告图片部分

    <img src="../img/f001a62f-a49d-4a4d-b56f-2b6908a0002c_g.jpg" width="100%" style="display: none;" id="imgAd" />
    

    5.总结

    5.1 javascript的引入方式

    • 内部引入方式

            直接将javascript代码写到<script type=”text/javascript”></script>

    • 外部引入方式

           需要创建一个.js文件,在里面书写javascript代码,然后在html文件中通过script 标签的src属性引入该外部的js文件

    5.2 BOM对象

      BOM对象:浏览器对象模型(操作与浏览器相关的内容)

    • Window对象Window 对象表示浏览器中打开的窗口。 

                  setInterval():它有一个返回值,主要是提供给clearInterval使用。

                 setTimeout():它有一个返回值,主要是提供给clearTimeout使用。

                 clearInterval():该方法只能清除由setInterval设置的定时操作 clearTimeout():该方法只能清除由setTimeout设置的定时操作

        弹出框的几个方法:

         <script>

            //警告框

           //alert("aaa");

      

           //确认按钮

            //confirm("您确认删除吗?");

      

            //提示输入框

             prompt("请输入价格:");

          </script>

     

    • Location对象

              Location 对象包含有关当前 URL 的信息。 

              href:该属性可以完成通过JS代码控制页面的跳转。

            

    <html>
    
     <head>
    
      <meta charset="UTF-8">
    
      <title>location对象</title>
    
      <script>    function tiao(){
    
        window.location.href="http://www.itcast.cn";
    
       }
    
      </script>
    
     </head>
    
     <body>
    
      <a href="#" onclick="tiao()">跳转到传智播客首页</a>  </body>
    
    </html>
    • History对象

         History 对象包含用户(在浏览器窗口中)访问过的 URL。

          历史页面:使用location页面(把href属性值改为当前的history)

           History页面代码:

    <input type="button"  value=" 返 回 上 一 个 页 面  
    onclick="javascript:history.back()"/>

            go(参数)

               参数:-1 返回上一个历史记录页面;-2返回上上一个历史记录页面,1进入下一个历史记录页面。

     

                让按钮点击失效:

                onclick=”javascript:volid(0)”

    • Navigator对象

               Navigator 对象包含有关浏览器的信息。(该对象开发中不怎么常用)

    • Screen对象

           Screen 对象包含有关客户端显示屏幕的信息。(该对象开发中不怎么常用)

    四、使用JS完成注册页面表单校验

    1.需求分析

    之前我们已经使用弹出框的方式实现了表单校验的功能,但是此种方式用户体验效果极差!我们希望做成如下这种效果: 

    2.技术分析

    3.步骤分析

        第一步:确定事件(onfocus聚焦事件)并为其绑定一个函数

        第二步:书写绑定函数(在输入框的后面给出提示信息)

        第三步:确定事件(onblur离焦事件)并为其绑定一个函数

        第四步:书写函数(对数据进行校验,分别给出提示) 

    4.代码实现

        Html代码:

         

    <input type="text" name="user" size="34px" id="user" onfocus="showTip('user', '用户名必填!')" onblur="check('user', '用户名不能为空!')" />

        JS代码:

       

     1 <script>
     2 //聚焦显示提示信息
     3             function showTip(id, info) {
     4                 document.getElementById(id +"Span").innerHTML = "<font color='grey'>" + info +"</font>";
     5             }
     6             //数据校验
     7             function check(id, info) {
     8                 var Value = document.getElementById(id).value;
     9                 if(Value=="") {
    10                     document.getElementById(id + "Span").innerHTML = "<font color='red'>"+ info +"</font>";
    11                 } else {
    12                     document.getElementById(id + "Span").innerHTML = "";
    13                 }
    14             }
    15             //确认密码的数据校验
    16             function checkRePassword() {
    17                 var repassword = document.getElementById("repassword").value;
    18                 var password = document.getElementById("password").value;
    19                 if(repassword!= password) {
    20                     document.getElementById("repasswordSpan").innerHTML = "<font color='red'>两次输入的密码不一致!</font>";
    21                 } else {
    22                     document.getElementById("repasswordSpan").innerHTML = "";
    23                 }
    24             }
    25             //邮箱的数据校验
    26             function checkEmail() {
    27                 var email = document.getElementById("email").value;
    28                 if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(email)) {
    29                     document.getElementById("emailSpan").innerHTML = "<font color='red'>请输入正确的邮箱</font>";
    30                 } else {
    31                     document.getElementById("emailSpan").innerHTML = "";
    32                 }
    33             }
    34         </script>
  • 相关阅读:
    spring cloud 学习(Gateway)网关
    spring cloud 学习(Hystrix)熔断器
    spring cloud 学习(Feign)分布式配置中心
    老子道德经-帛书甲本
    重新执行mysql索引
    有关maven2路径
    关于Mysql含有blob字段的查询效率问题
    提交Json参数到Tomcat报400错误的问题
    不知道算不算mysql的漏洞
    JFinal项目中,如何连接两个不同版本的mysql数据库?
  • 原文地址:https://www.cnblogs.com/guodong-wang/p/7252866.html
Copyright © 2011-2022 走看看