javascript事件处理的三种方式

问题描述:如何实现如下功能

单击输入框时,提示信息消失,输入框背景变黄色,但在浏览器其他地方后输入框显示提示消息


<body>
    <input type="text" id="name" value="请输入名字" >
    <button type="button" id="bt" >提交</button>
</body>

第一种:HTML处理事件

最为普遍,直接在标签加入事件监听

<body>
    <input type="text" id="name" value="请输入名字" οnfοcus="fun(this)" οnblur="fun1(this)" >
    <button type="button" id="bt" >提交</button>
</body>

事件处理代码:
var a = document.getElementById("name");
function fun (x) {
    if(a.value=="请输入名字"){
        a.value="";
        x.style.background="yellow";
    }
}

function fun1(x){
    if(a.value == ""){
        a.value = "请输入名字";
        x.style.background="white";
    }
    x.style.background="white";   
}

第二种:DOM0级事件

使用DOM监听,加载事件
var a = document.getElementById("name");
a.onfocus = function(){
    if(a.value=="请输入名字"){
        a.value="";
        this.style.background="yellow";
    }
}
a.onblur = function(){
    if(a.value == ""){
        a.value = "请输入名字";
        this.style.background="white";
    }
    this.style.background="white";  
}


第三种:DOM2级事件

是使用标准的addEventListener方式和IE私有的attachEvent方式
var a = document.getElementById("name");

if(a.addEventListener){
    a.addEventListener("focus",function(){
        if(a.value=="请输入名字"){
            a.value="";
            this.style.background="yellow";
        }
    })

    a.addEventListener("blur",function(){
        a.value="请输入名字";
        this.style.background="white";
    })
}else{
    a.attachEvent("onfocus",function(){
        if(a.value=="请输入名字"){
            a.value="";
            
        }
    })
    a.attachEvent("onblur",function(){
        a.value="请输入名字";
        
    })
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值