python之路_前端基础之JS5

一、事件类型

  常见的主要事件类型介绍如下:

onclick        当用户点击某个对象时调用的事件句柄。
ondblclick     当用户双击某个对象时调用的事件句柄。

onfocus        元素获得焦点。               练习:输入框
onblur         元素失去焦点。               应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.
onchange       域的内容被改变。             应用场景:通常用于表单元素,当元素内容被改变时触发.(三级联动)

onkeydown      某个键盘按键被按下。          应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.
onkeypress     某个键盘按键被按下并松开。
onkeyup        某个键盘按键被松开。

onload         一张页面或一幅图像完成加载。

onmousedown    鼠标按钮被按下。
onmousemove    鼠标被移动。
onmouseout     鼠标从某元素移开。
onmouseover    鼠标移到某元素之上。
onmouseleave   鼠标从元素离开

onselect       文本被选中。
onsubmit       确认按钮被点击。

 二、onsubmit实例

  onsubmit主要用在form表单进行submit提交时执行的事件,即通过form标签绑定此事件,点击form下的submit按钮执行事件。当表单在提交时触发, 该属性也只能给form元素使用。应用场景::在表单提交前验证用户输入是否正确,如果验证失败,在该方法中我们应该阻止表单的提交。实例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" class="form">
    <p><input type="text" class="inpt"><span class="error"></span></p>
    <input type="submit" >
</form>
<script>
    var ele_form=document.getElementsByClassName("form")[0];
    var ele_inpt=document.getElementsByClassName("inpt");
    var ele_error=document.getElementsByClassName("error")[0];
    function foo() {
        ele_error.innerHTML=""
    }
    ele_form.onsubmit=function () {                                         //通过父级form节点绑定onsubmit事件
        var inpt_value=ele_inpt.value;
        if(inpt_value.length>5 && inpt_value.length<12){
            
        }
        else{
            ele_error.innerHTML="输入内容长度需要大于5小于12";
            setTimeout(foo,3000);                                           //用定时器保证提示信息显示3秒后消失
            return false                                                    //阻止提交事件的发生
        }
    }
</script>
</body>
</html>

三、onchange实例

  onchange事件主要应用在select标签上,通过select标签绑定此事件,当选定一个select下面的内容,则会执行onchange事件下的内容,一个主要的应用就是三级联动,具体实例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<select name="" id="pro">
    <option value="">请选择省份</option>
    <option value="1">陕西省</option>
    <option value="2">湖北省</option>
    <option value="3">广东省</option>
</select>
<select name="" id="city">
    <option value="">请选择城市</option>
</select>
<script>
    var data={"1":["西安市","安康市","汉中市"],"2":["武汉市","汉口市","武昌市"],"3":["广州市","深圳市","佛山市"]}
    var ele_pro=document.getElementById("pro");
    var ele_city=document.getElementById("city");
    ele_pro.onchange=function () {
        var citys=data[this.value];
        ele_city.options.length=1;                                  //保证每次选择一个省份时,城市中没有之前遗留的城市存在
        for(var i=0;i<citys.length;i++){
            var ele_opt=document.createElement("option");
            var city_val=citys[i];
            ele_opt.innerHTML=city_val;
            ele_city.appendChild(ele_opt);
        }
    }
</script>
</body>
</html>

四、onkeydown及onselect实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" id="d1">
<script>
    var ele=document.getElementById("d1");
//  onkeydown事件:某个键盘键被按下,执行事件
    ele.onkeydown=function (event) {
        console.log(event.keyCode);
        if(event.keyCode==13){                                      //event.keyCode==13为回车键
            alert(123)
        }
    };
//  onselect 事件:文本被选中时执行事件
    ele.onselect=function () {
        alert(1234)
    }
</script>
</body>
</html>

五、onfocus及onblur实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" id="inp1" value="请输入用户名">
<script>
    var ele_inp=document.getElementById("inp1");
    //onfocus事件
     ele_inp.onfocus=function () {                                      //当点中输入框,默认value值消失
              this.value="";
     };
     //onblur事件
     ele_inp.onblur=function () {                                       //当点中非输入框区域,输入框重新赋上默认值
         if(!this.value.trim()){
              this.value="请输入用户名"
         }
     }
</script>
</body>
</html>

六、mouseout与mouseleavequbie

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
         #container{
             width: 300px;
         }

        #title{
            background-color: darkblue;
            color: white;
            line-height: 30px;
            text-align: center;
        }

        #list .item1{
            background-color: gray;
            line-height: 20px;
        }
        #list .item2{
            background-color: #f0ad4e;
            line-height: 20px;
        }
        #list .item3{
            background-color: green;
            line-height: 20px;
        }

        .hide{
            display: none;
        }
    </style>
</head>
<body>
<div id="container">
        <div id="title">使用了mouseout事件↓</div>
        <div id="list" class="hide">
                <div class="item1">第一行</div>
                <div class="item2">第二行</div>
                <div class="item3">第三行</div>
        </div>
</div>


<script>
    var ele_title=document.getElementById("title");
    var ele_list=document.getElementById("list");
    var ele_container=document.getElementById("container");
    
  // 1.不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。

  // 2.只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。

    ele_title.onmouseover=function () {
        ele_list.classList.remove("hide");
    };

    ele_container.onmouseout=function () {
        ele_list.classList.add("hide");
    };

    ele_container.onmouseleave=function () {
        ele_list.classList.add("hide");
    }
</script>

</body>

</html>
原文地址:https://www.cnblogs.com/seven-007/p/7833712.html