当文本框第一次获得焦点时,清空文本框中原有的内容

时间:2022-04-09 08:46:41
  • 如何让文本框内的提示信息在激活文本框时清空
    当文本框第一次获得焦点时,清空文本框中原有的内容解决思路
        当需要填写的文本框很多时,在每个文本框内写上提示信息是个不错的办法,但这样一来用户在填写该项时必须先把提示文本删掉,非常不方便。所以应该让文本框更人性化一点,在focus时检查当前值是否为文本框的默认值,是则清空,否则保持不变,而在blur时检查文本框的内容是否为空,是则重置为默认值,否则保持不变。
    当文本框第一次获得焦点时,清空文本框中原有的内容具体步骤

    1.设置文本框的默认值或提示信息。

    <input value="填写您的昵称">
    <input value="填写您的生日(1900-01-01)">

    2.判断、清空文本框内容的函数。

    function cls(){
    with(event.srcElement)
    if(value==defaultValue) value=""
    }

    3.判断、还原文本框内容的函数。

    function res(){
    with(event.srcElement)
    if(value=="") value=defaultValue
    }

    4.给文本框添加触发事件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()">

    注意:本例的方法对大部分表单控件都有效,比如多行文本框。
    特别提示
    运行完整代码,在鼠标第一次单击文本框时该文本框内容将被清空,在文本框外单击时文本框内容将还原回默认值。如果改变了文本框的值,将不再有任何变化。图1.4.28为代码运行时的初始效果,图1.4.29为鼠标单击第二个文本框后的效果。

    当文本框第一次获得焦点时,清空文本框中原有的内容

    图1.4.28 代码运行后的初始效果
    当文本框第一次获得焦点时,清空文本框中原有的内容
    图1.4.29鼠标单击文本框时的效果

    特别说明


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