绑定事件
一、绑定事件的两种方式
# 就是给HTML元素添加自定义的功能
绑定事件的方式1
绑定事件的方式1 <button onclick="func()">点我</button> <script> function func() { alert(123) } </script>
绑定事件的方式2
<button id="d1">选我</button>
    <script>
        // 1.先查找标签
        var btnEle = document.getElementById('d1')
        // 2.绑定事件
        btnEle.onclick = function () {
            alert(456)
        }
    </script>
内置参数
this指代的就是当前被操作对象本身
在事件的函数体代码内部使用
btnEle.onclick = function () { alert(456) console.log(this) }

事件练习
onclick 单击事件
onfocus 聚焦事件
onblur 失去焦点事件
onchange 文本域变化事件
onload 等待 ...加载完毕后执行事件
点击按钮的同时出现当前的时间
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <input type="text" id="d2">
    <button id="d1">出来!</button>
    <button id="d3">站住!</button>
    <script>
        // 1.先查找按钮标签
        var btnEle = document.getElementById('d1')
        var btn1Ele = document.getElementById('d3')
        // 定义一个存储定时器的全局变量
        var t = null
        // 3.单独编写一个展示时间的函数
        function showTime(){
            // 3.获取当前时间
            var cTime = new Date().toLocaleString()
            // 4.将时间添加到input文本框中
            var iEle = document.getElementById('d2')
            iEle.value = cTime
        }
        // 2.绑定点击事件
        btnEle.onclick = function () {
            if(!t){
                t = setInterval(showTime,1000)
            }
        }
        // 3.绑定点击事件
        btn1Ele.onclick = function () {
            clearInterval(t)
            // 把t清空
            t = null
        }
    </script>
</body>
</html>
搜索框案例
用户的数据校验
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
  <p>username:
      <input type="text" id="d1">
<span id =”username“ style="color: red"></span>
  </p>
    <p>password:
        <input type="text" id="d2">
         <span id="pwd" style="color: red"></span>
    </p>
    <button id="d3">登录</button>
</div>
<script>
    //1.查找标签按钮
    var btnEle = document.getElementById('d3')
    //2'绑定事件
    btnEle.onclick=function () {
        //3.获取input数据
        var usernameEle = document.getElementById('d1').value
        var passwordEle = document.getElementById('d2').value
        // console.log(usernameEle,passwordEle )
        //判断数据是否合法
        if(!usernameEle){
            var sp1Ele  = document.getElementById('username')
            sp1Ele.innerText= '用户名不能为空'
        }
        if(!passwordEle){
            var sp2Ele  = document.getElementById('pwd')
            sp2Ele.innerText= '密码不能为空'
        }
    }
</script>
</body>
</html>
select 省市联动案例
select框联动指的是一个框变了另外的一个框跟着变了,即同步变化,同步更新
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        window.onload = function () {
        }
    </script>
</head>
<body>
<p>省:
    <select name="" id="d1">
    </select>
</p>
<p>区:
    <select name="" id="d2">
    </select>
</p>
<script>
    var data = {"河北": ["廊坊", "邯郸"], "北京": ["朝阳区", "海淀区"], "山东": ["威海市", "烟台市"], "安徽":["合肥","芜湖"]};
    var se1Ele = document.getElementById('d1')
    var se2Ele = document.getElementById('d2')
    for (let pro in data){
        var opEle = document.createElement('option')
        opEle.innerText = pro
        opEle.value = pro
        se1Ele.appendChild(opEle)
    }
    se1Ele.onchange = function () {
        var cutpro = this.value
        cityList = data[cutpro]
        se2Ele.innerHTML = ''
        for (let i=0;i<cityList.length;i++){
            var opEle = document.createElement('option')
            opEle.innerText = cityList[i]
            opEle.value = cityList[i]
            se2Ele.appendChild(opEle)
        }
    }
</script>
</body>
</html>

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号