HTML5 中有个新特性叫 placeholder,一般用它来描述输入字段的预期值,适用于 text、search、password 等类型的 input 以及 textarea。示例如下:

<input type="text" placeholder="请输入文本"><br>
<input type="search" placeholder="请输入查询关键字"><br>
<input type="password" placeholder="请输入密码"><br>
<textarea placeholder="请输入描述"></textarea>

对用户来说,placeholder 就是文本框中的输入提示信息,往往是对预期值或预期格式的简短描述。该提示在用户输入之前显示在文本框中,在用户开始输入之后,该提示就会消失,此时文本框中显示的是用户输入的内容。而如果文本框被置空,则该提示会再次显示出来。

然而遗憾的是,早些年还有大量的 IE9 以及更低版本的 IE 用户,这些浏览器都不支持 placeholder 属性。所以那会儿做项目的时候,经常需要用 JS 来模拟 placeholder,以达到类似的效果。实现代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>纯 JS 设置文本框的默认值</title>
</head>
<body>
<!-- 写法一,设置默认值为 111 -->
<input type="text" value="111" onfocus="if(this.value == '111'){this.value = ''}"
onblur="if(this.value == ''){this.value = '111'}" />
<br />
<!-- 写法二,设置默认值为 222,为了效果更逼真,将默认值设置为灰色 -->
<input type="text" value="222" style="color: #cccccc"
onfocus="if(this.value == '222'){this.value = ''; this.style.color = '#333333'}"
onblur="if(this.value == ''){this.value = '222'; this.style.color = '#cccccc'}" />
<br />
<!-- 写法三,设置默认值为 333,其实上面写法中的 this 可以省略 -->
<input type="text" value="333" style="color: #cccccc"
onfocus="if(value == '333'){value = ''; style.color = '#333333'}"
onblur="if(value == ''){value = '333'; style.color = '#cccccc'}" />
<br />
<!-- 写法四,设置默认值为 444,将 html 中的 js 代码提取出来 -->
<input type="text" value="444" style="color: #cccccc" id="txt4" />
<script>
var txt4 = document.getElementById("txt4");
txt4.onfocus = function () {
if (this.value == '444') {
this.value = '';
this.style.color = '#333333';
}
}
txt4.onblur = function () {
if (this.value == '') {
this.value = '444';
this.style.color = '#cccccc';
}
}
</script>
<br />
<!-- 写法五,设置默认值为 555,换一种绑定事件的方式 -->
<input type="text" value="555" style="color: #cccccc" id="txt5" />
<script>
var txt5 = document.getElementById("txt5");
txt5.addEventListener("focus", function (){
if (this.value == '555') {
this.value = '';
this.style.color = '#333333';
}
});
txt5.addEventListener("blur", function () {
if (this.value == '') {
this.value = '555';
this.style.color = '#cccccc';
}
});
</script>
</body>
</html>

本文链接http://www.cnblogs.com/hanzongze/p/js-self-placeholder.html

版权声明:本文为博客园博主 韩宗泽 原创,作者保留署名权!欢迎通过转载、演绎或其它传播方式来使用本文,但必须在明显位置给出作者署名和本文链接!个人博客,能力有限,若有不当之处,敬请批评指正,谢谢!

纯 JS 设置文本框的默认提示的更多相关文章

  1. js设置文本框只能输入数字

    JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'' ...

  2. winform窗口打开后文本框的默认焦点设置

    原文:http://blog.csdn.net/kongwei521/article/details/6871411 winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种 ...

  3. JS给文本框赋值后,在页面后台取不到文本框值的解决方法

    转自:http://www.cnblogs.com/qiaohd/archive/2012/03/23/2413660.html (ReadOnly.disabled 都有可能造成取值取不到) 开发一 ...

  4. jquery设置文本框值 与获取文本框的值

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. .Net 文本框实现内容提示(仿Google、Baidu)

    原文:.Net 文本框实现内容提示(仿Google.Baidu) 1.Demo下载: 文本框实现内容提示(仿Google.Baidu).rar 2.创建数据库.表(我用的sqlserver2008数据 ...

  6. PHP——0128练习相关3——设置文本域的默认值

    都知道文本框的的默认值只要设置value属性即可但是文本域是没有value属性的要设置文本域的默认值只要<textarea>默认值</textarea>即可简单吧,呵呵..

  7. js控制文本框只能输入中文、英文、数字与指定特殊符号.

    先在'' 里输入 onkeyup="value=value.replace(/[^\X]/g,'')" 然后在(/[\X]/g,'')里的 X换成你想输入的代码就可以了, 中文u4 ...

  8. js限制文本框只能输入数字方法小结(转)

    这篇文章主要分享下js代码限制文本框中只能输入数字的多个实例,学习下js控制文本框中输入数字的方法,需要的朋友可以参考下   有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数 ...

  9. SSRS动态设置文本框属性

    SSRS可以通过表达式动态设置文本框所有的属性,比如字体,字号,是否加粗,如下图所示: 汉字和数字英文字母占用的空间不一样,一个汉字占用两个数字和英文字母的空间,VB里有LENB取得字节数,这SSRS ...

随机推荐

  1. Linux软件安装——服务管理

    Linux软件安装——服务管理 摘要:本文主要学习了Linux中有关服务管理的知识. 什么是服务 服务一般是放置在后台运行的一个或多个进分程,为用户或系统提供某项特定的服务,有些是系统服务,有些则是独 ...

  2. 从实例一步一步入门学习SpringCloud的Eureka、Ribbon、Feign、熔断器、Zuul的简单使用(附代码下载)

    场景 SpringCloud -创建统一的依赖管理: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102530574 Sprin ...

  3. 易优CMS:arcview的基础用法

    [基础用法] 名称:arcview 功能:获取单条文档数据 语法: {eyou:arcview aid='文档ID'} <a href="{$field.arcurl}"&g ...

  4. linux shell通过curl获取HTTP请求的状态码

    直接上代码: curl -I -m -o /dev/null -s -w %{http_code} www.baidu.com 参数说明: -I 仅测试HTTP头 -m 10 最多查询10s -o / ...

  5. JS基础语法---分支语句之:if语句,if-else语句,if-ever if语句

    //if语句只有一个分支 //if-else语句有两个分支,最终执行一个分支 //if-else if-else if-else if-else if..........else---多分支,最终也是 ...

  6. sourceTree3.2.6 跳过注册的方法(最新)

    1.下载好之后会有这么一个界面要求你注册或登录.(不管它)将下面的一串串放进我的电脑的地址栏,打开sourcetree的文件夹 %LocalAppData%\Atlassian\SourceTree\ ...

  7. 021.Docker mysql启动时执行初始化sql

    1.拉取Mysql镜像 # docker pull mysql:5.7 2.检查mysql镜像 # docker inspect mysql:5.7 ## "Entrypoint" ...

  8. docker安装执行问题

    ubuntu14.04上安装docker问题: sudo apt-get update curl -fsSL https://get.docker.com -o get-docker.sh sh ge ...

  9. [Go] 利用channel形成管道沟通循环内外

    这个要解决的问题是,比如如果有一个大循环,取自一个大的文件,要进行逻辑处理,那么这个逻辑的代码要放在循环每一行的循环体里面,这样有可能会出现一个for循环的逻辑嵌套,一层又一层,类似俄罗斯套娃.如果放 ...

  10. Linux shell 判断字符串为空等常用命令

    1.判断字符串为空 if [ -z "$str" ]; then echo "empty string" fi 2.判断文件是否存在 if [ -f /home ...