纯 JS 设置文本框的默认提示
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 设置文本框的默认提示的更多相关文章
- js设置文本框只能输入数字
JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'' ...
- winform窗口打开后文本框的默认焦点设置
原文:http://blog.csdn.net/kongwei521/article/details/6871411 winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种 ...
- JS给文本框赋值后,在页面后台取不到文本框值的解决方法
转自:http://www.cnblogs.com/qiaohd/archive/2012/03/23/2413660.html (ReadOnly.disabled 都有可能造成取值取不到) 开发一 ...
- jquery设置文本框值 与获取文本框的值
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- .Net 文本框实现内容提示(仿Google、Baidu)
原文:.Net 文本框实现内容提示(仿Google.Baidu) 1.Demo下载: 文本框实现内容提示(仿Google.Baidu).rar 2.创建数据库.表(我用的sqlserver2008数据 ...
- PHP——0128练习相关3——设置文本域的默认值
都知道文本框的的默认值只要设置value属性即可但是文本域是没有value属性的要设置文本域的默认值只要<textarea>默认值</textarea>即可简单吧,呵呵..
- js控制文本框只能输入中文、英文、数字与指定特殊符号.
先在'' 里输入 onkeyup="value=value.replace(/[^\X]/g,'')" 然后在(/[\X]/g,'')里的 X换成你想输入的代码就可以了, 中文u4 ...
- js限制文本框只能输入数字方法小结(转)
这篇文章主要分享下js代码限制文本框中只能输入数字的多个实例,学习下js控制文本框中输入数字的方法,需要的朋友可以参考下 有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数 ...
- SSRS动态设置文本框属性
SSRS可以通过表达式动态设置文本框所有的属性,比如字体,字号,是否加粗,如下图所示: 汉字和数字英文字母占用的空间不一样,一个汉字占用两个数字和英文字母的空间,VB里有LENB取得字节数,这SSRS ...
随机推荐
- 高强度学习训练第十三天总结:使用Netty实现一个http服务器
Netty入门 Netty的重要性不言而喻.那么今天就来学习一下Netty. 整个项目基于Gradle搭建. Build如下所示: plugins { id 'java' } group 'cn.ba ...
- tornado中传递参数的几种方式
方法一 :tornado路由可以使用正则表达式中的子表达式传递url参数.比如:(r"/member//(\w*)/([01]*)", MemberHandler)匹配以后,tor ...
- [转]Outlook API
本文转自:https://www.cnblogs.com/yl153/p/6711519.html 1.Outlook简介 若要从Outlook 外控制Outlook对象,必须在编写代码的工程中建立对 ...
- MAC TXT文本
Mac系统下.txt格式的纯文本怎么保存? 作者:佚名 字体:[增加 减小] 来源:互联网 时间:06-02 14:29:23 我要评论 Mac系统下.txt格式的纯文本怎么保存?.txt是个用途广泛 ...
- BayaiM__oracle切换归档模式步骤:
BayaiM__oracle切换归档模式(步骤): ------------------oracle11g设置归档模式和非归档模式--------------------------[root@tes ...
- MSSQL 插入数据时候,如果存在则更新的方法分享
摘要:下文讲述MSSQL中,插入数据时,如果存在则更新,否则就插入数据的方法分享实验环境:sql server 2017 mssql中,我们可以采用 MERGE INTO 关键字实现此功能,当两者匹配 ...
- 5-2可视化库Seaborn-调色板
In [1]: import numpy as np import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline ...
- js修改对象的key值
var array = [ { id:1, name:"小明" }, { id:2, name:"小红" } ]; /**/ //旧key到新key的映射 va ...
- 2. Go语言—包概念
一.包的概念 和python一样,把相同功能的代码放到一个目录,称之为包 包可以被其他包引用(若包中变量/函数被其他包调用,名需大写) main包是用来生成可执行文件,每个程序只有一个main包 包的 ...
- Node.js—基本知识
一.第一个Node代码 1. 运行Node.js 通过node E:\Node代码\hello.js运行代码:Node.js是服务器的程序,写的js语句都将运行在服务器上.返回给客户的,都是已经处 ...