您好,通过js实现得到焦点时文本框清空,失去焦点时又显示默认文字,值

JavaScript015

您好,通过js实现得到焦点时文本框清空,失去焦点时又显示默认文字,值,第1张

如果你那文本框是 <input id="inputbox" type="text" />

var modified = false

document.getElementById("inputbox").onfocus = function() {

    if(!modified)

        document.getElementById("inputbox").value = ""

}

document.getElementById("inputbox").onblur = function() {

    if(!modified)

        document.getElementById("inputbox").value = "默认文字"

}

document.getElementById("inputbox").onkeydown = function() {

    modified = true

}

//假如有个大文本域的ID叫txt1

/*

* jquery版

*/    

$('#txt1').focus(function(){

    $(this).val('获得焦点')

}).blur(function(){

    //清空文字

    $(this).val('')

})

/*

* javascript版,代码中绑定

*/

var txtareaObj = document.getElementById('txt1')

txtareaObj.onfocus = function(){

    this.value = "获得焦点"

}

txtareaObj.onblur = function(){

    this.value = ""

}

/*

* javascript 事件监听版 ,这个需要判断浏览器兼容性

*/

var txtareaObj = document.getElementById('txt1')

//获得焦点函数

var foucusHandler = function(){

    txtareaObj.val('获得焦点')

}

var blurHandler = function(){

    txtareaObj.val('')

}

try{  

    // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本

    txtareaObj.addEventListener('focus',foucusHandler,false)

    txtareaObj.addEventListener('blur',blurHandler,false)

}catch(e){

    // IE8.0及其以下版本

    txtareaObj.attachEvent('onfocus',handle)

    txtareaObj.attachEvent('blur',handle)

}

其实在失去焦点事件(blur)中,我们可以通过this传入的方式,将本元素传入到处理函数中。

下面我给你介绍下实现方式,具体的实现结构请调整为最合适自己项目的形式

<input id="input1" type="text" onblur="inputOnblur(this)">

<input id="input2" type="text" onblur="inputOnblur(this)"> function inputOnblur(input) {

  if (input.id == "input1")

    // do something

  else if (input.id == "input2")

    // do otherthing

}

此外,如果你的结构不方便在HTML中设置onblur,想通过事件注册的方式,可以在函数内部使用event.target来访问到具体的触发事件元素