js获得焦点

来源:互联网 发布:企业网站域名注册 编辑:程序博客网 时间:2024/05/22 06:44
JS实现文本框获得焦点,文本框里提示信息自动消失2009-08-02 17:10在Web页面上,有时我们要在文本输入框里给点提示信息,告诉用户在这个地方该输入什么内容,比如说“请输入评论内容...”等等之类的提示信息,当用户把光标单位在输入框的时候,不应该让用户去清除那些提示信息,我们可以写个脚本来帮我们做这件事情,请看下面的两个例子: 

1、给文本框添加触发事件onfocus和onblur,调用函数处理。完整代码: 
<script> 
function cls(){ 
//捕获触发事件的对象,并设置为以下语句的默认对象 
with(event.srcElement) 
     //如果当前值为默认值,则清空 
if(value==defaultValue) value="" 

function res(){ 
//捕获触发事件的对象,并设置为以下语句的默认对象 
with(event.srcElement) 
//如果当前值为空,则重置为默认值 
if(value=="") value=defaultValue 

</script> 
<input value="填写您的昵称" onfocus="cls()" onblur="res()"> 
<input value="填写您的生日(1900-01-01)" 
onfocus="cls()" onblur="res()"> 
注意:本例的方法对大部分表单控件都有效,比如多行文本框。 
特别提示 
运行完整代码,在鼠标第一次单击文本框时该文本框内容将被清空,在文本框外单击时文本框内容将还原回默认值。如果改变了文本框的值,将不再有任何变化 

特别说明 
本例主要是对象的defaultValue属性和onfocus、onblur事件的应用。 
defaultValue 设置或获取对象的初始内容。 
onblur 在对象失去输入焦点时触发。 
onfocus 当对象获得焦点时触发。 


2、用于清除输入框中提示信息的方法 

<html> 
<head> 
<title>对KKKKK的评论</title> 
<script type="text/javascript" language="javascript"> 
var gFlag=true;//全局变量,用于判断是否允许清除文本框内容 
//用于清除输入框中提示信息的方法 
function clearTip(){ 
        var oTxt=document.getElementById("textfield"); 
         if(gFlag==true){ 
           oTxt.value=""; 
           gFlag=false; 
        } 

</script> 
</head> 
<body> 
<form> 
<label> 
<textarea name="textfield" cols="40" rows="5" onfocus="clearTip()">请输入对KKKKK的评论......</textarea> 
</label> 
<p> 
    <label> 
    <input type="submit" name="Submit" value="提交"> 
    </label> 
</p> 
</form> 
</body> 
</html> 

运行上面的示例,可以看到当焦点定位在文本框,提示信息“请输入评论的内容...”将会自动 
消失,这里需要注意的是用户可能中途去做其他事情,使得文本框失去焦点,当他重新回来 
输入的时候,又获得了焦点,这时会再次触发onfocus事件,调用clearTip方法,把前面输入的 
内容清除了,这是我们不希望结果。所以可以设置个全局变量gFlag作为标志位,当清除过一次 
文本框的内容之后就改变标志位,不再允许通过clearTip()方法清除文本框的内容。 

<input name="adminid" type="text" size="12" style="border:1PX; border:#CCCCCC;color:#CCCCCC" value="请输入验证码" onclick="if(this.value=='请输入验证码')this.value=''" > 
原创粉丝点击