jquery 文本框点击时文字消失,失去焦点时文字出现

js实现代码:

 代码如下 复制代码

<input type="text" value="不推荐这么做" onfocus="if(this.value == '不推荐这么做') this.value = ''" onblur="if(this.value == '') this.value = '不推荐这么做'" />

我是非常反对把 javascript 写在 html 标签里的,这和 style 写在 html 标签里一样,虽然不违反 W3C 标准,但也不推荐这么写。因为:

1、完全没有复用性可言,如果是个表单,输入框很多,每个都需要这样的效果,那就每个都这么处理吗?

2、如果要修改其中的提示文字,费时费力又不好维护。

3、我们倡导结构(html)、表现(css)、行为(javascript)三者分离,这才是一个好的页面。

那要怎么写才能实现这个效果,而且既有复用性,又好维护,又不需要把 js 写进 html 里呢?

相信我们都有加载 jQuery,我就基于 jQuery 写了一个方法,先看 DEMO,具体方法如下:

1、html 部分:

 代码如下 复制代码

<input type="text" id="input_test" value="input 提示测试" />

2、引入 jQuery:

<script type="text/javascript" src="jquery.min.js"></script>

3、执行脚本:

 代码如下 复制代码

$(function() {
    var inputEl = $('#input_test'),
        defVal = inputEl.val();
    inputEl.bind({
        focus: function() {
            var _this = $(this);
            if (_this.val() == defVal) {
                _this.val('');
            }
        },
        blur: function() {
            var _this = $(this);
            if (_this.val() == '') {
                _this.val(defVal);
            }
        }
    });
})

实现的最终效果是一样一样的,或许是我个人的代码洁癖,但我相信,好代码从细节开始

 代码如下 复制代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charsetGB2312" />
        <title>文本框点击时文字消失,失去焦点时文字出现 </title>
        
    </head>
    <body>
        <input type="text" value="请输入您的姓名" id="myinput" />
    </body>
</html>
<script language="JavaScript" type="text/javascript">
            function addListener(element,e,fn){
             if(element.addEventListener){
            element.addEventListener(e,fn,false);
             } else {
             element.attachEvent("on" + e,fn);
              }
            }
            var myinput = document.getElementById("myinput");
            addListener(myinput,"click",function(){
                myinput.value = "";
            })
            addListener(myinput,"blur",function(){
                myinput.value = "请输入您的姓名";
            })

</script>

时间: 2024-12-30 00:53:27

jquery 文本框点击时文字消失,失去焦点时文字出现的相关文章

jquery实现点击label的同时触发文本框点击事件的方法_jquery

本文实例讲述了jquery实现点击label的同时触发文本框点击事件的方法.分享给大家供大家参考.具体实现方法如下: var labelID; $('label').click(function() { labelID = $(this).attr('for'); $('#'+labelID).trigger('click'); }); 希望本文所述对大家的jQuery程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜

js文本框点击时文字消失,失去焦点时文字出现

方法一,直接在input中直接  代码如下 复制代码 <input type="text" onfocus="if(this.value=='指中我看看什么效果') this.value='';" onblur="if(this.value=='') this.value='指中我看看什么效果';" value="指中我看看什么效果" style="color:#666" size="6&q

Js制作点击输入框时默认文字消失的效果_文字特效

为了提高用户体验和易用度,一些设计师会对网页中用户经常用的东西进行优化,比如输入框.一般的输入框是怎样优化的呢?从用户体验的角度出发,简化用户使用步骤,让用户用得更方便就是提高了易用性,例如当鼠标悬浮在输入框时改变输入框颜色.自动选中输入框中的默认文字,或者点击输入框时自动清除默认内容等等. 这个效果听起来复杂,其实做起来却很简单,只要一小段javascript代码即可解决.下?面介绍一下几种效果的代码: 1.点击输入框选中内容的Html代码: <form id="form1"

jquery实现点击label的同时触发文本框点击事件的方法

  本文实例讲述了jquery实现点击label的同时触发文本框点击事件的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 var labelID; $('label').click(function() { labelID = $(this).attr('for'); $('#'+labelID).trigger('click'); }); 希望本文所述对大家的jQuery程序设计有所帮助.

jQuery 文本框得失焦点的实例介绍

 本篇文章主要是对jQuery 文本框得失焦点的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 版本一   css代码部分:   代码如下: .focus {       border: 1px solid #f00;      background: #fcc; }    当焦点获得时,添加focus样式,添加边框,并改背景色为#fcc   html代码部分:  代码如下: <body>     <form action="" method=&qu

jquery文本框中的事件应用以输入邮箱为例_jquery

文本框中的事件应用:以输入邮箱为例,如图: 代码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head

jquery 文本框得到和失去焦点的效果

 代码如下 复制代码   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery 文

jQuery文本框得到与失去焦点动态改变样式效果_jquery

本文实例讲述了jQuery文本框得到与失去焦点动态改变样式效果.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> body { font: nor

简单实现的JQuery文本框水印插件_jquery

采用JQuery实现文本框的水印效果非常容易,效果如下:   代码片段,定义要应用水印效果的文本框的样式: .watermark { color: #cccccc; } 将JavaScript代码封装成JQuery的插件:  (function ($) { $.fn.watermark = function (options) { var settings = $.extend({ watermarkText: "Input something here", className: &q