纯 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 ...
随机推荐
- 如何给HTML页面设置行高
设置行高 由于简单还是老样子直接上代码了哦,注意:line-height属性值可以使用固定值如:20px..和百分比如:20%. 如果想让文字垂直居中如下:行高的主要作用是用来设置文本的垂直方向居中对 ...
- QT QNetworkAccessManager 如何支持RESTFul的HTTP Patch方法
HTTP Patch方法是除了post,get,put,delete之外的一个新方式, 网上查不到的,也算是独家吧: 主要用下面这个方法: QNetworkReply *sendCustomReque ...
- Hystrix工作流
Hystrix工作流程图: 流程图详解 1. 构造HystrixCommand对象或者HystrixObservableCommand对象 构造HystrixCommand 或HystrixObser ...
- c语言的全排列
在c语言中实现全排列,对于刚接触c语言,还没学习算法的人来说,比较困难了吧.估计大佬也不会看这种基础的东西,全排列实现的办法很多,在c++中有一个专门的函数可以使用,但是在c中实现就有点困难了.如果你 ...
- [20190523]修改参数后一些细节注意.txt
[20190523]修改参数后一些细节注意.txt --//昨天远程给别人解决一个小问题,就是配置使用hugepage.一些细节必须注意,通过例子说明问题. 1.环境:# cat /proc/vers ...
- Nginx的负载均衡算法、lvs的负载均衡算法
NGINX: 官方默认的算法: RR:轮询 weight:权重 ip_hash:配置此项后weight项失效 第三方模块: fair:根据后端服务器的繁忙程度 url_hash:如果客户端访问的url ...
- Sublime打开txt文本乱码的解决方法
Ctrl + Shift + P打开命令行 输入 install ,先安装 Package Control 安装成功会提示你 现在你可以使用命令面板并键入“install package”开始 然后 ...
- [Go] 并发imap收信
并发数太大会直接死,这里有时候需要多试几次 package main import ( "flag" "fmt" "io/ioutil" & ...
- 封装查找元素以及集成日志输出,Base模块
关于查找元素封装,Base模块 """ Selenium 封装基类 封装查找元素以及集成日志输出 """ from HTMLReport i ...
- 爬虫---lxml爬取博客文章
上一篇大概写了下lxml的用法,今天我们通过案例来实践,爬取我的博客博客并保存在本地 爬取博客园博客 爬取思路: 1.首先找到需要爬取的博客园地址 2.解析博客园地址 # coding:utf-8 i ...