HTML5 placeholder(空白提示)属性介绍


Posted in HTML / CSS onAugust 07, 2013

原文地址:HTML5′s placeholder Attribute
演示地址: placeholder演示
原文日期: 2010年08月09日
翻译日期: 2013年8月6日
浏览器引入了许多的HTML5 特性: 有些是基于HTML的,有些是JavaScript APIs形式的,但都很有用。其中我最喜欢的一个就是为input元素引入了placeholder属性。
placeholder属性显示引导性文字直到输入框获取输入焦点,当有了用户输入内容后引导性内容将会自动隐藏。你肯定见过用JavaScript实现的这种技术成千上万次了,但是来自HTML5的原生支持一般来说会更好一些。
HTML 代码 如下:

复制代码
代码如下:

<input type="text" name="address" placeholder="请输入常住地址...">

你要做的仅仅是添加一个placeholder属性域,以及一些引导性的文字内容,不需要额外的JavaScript脚本来实现这种效果,是不是感觉很棒?
测试 placeholder 的支持度
(注意这是2010年的文章,到现在,2013年,主流浏览器应该都支持了.)
既然 placeholder 是一个新的功能,那么测试浏览器的支持是很有必要的。JS代码如下:
复制代码
代码如下:

// 在JS中创建一个input元素,并判断元素有没有一个叫做placeholder的属性
// 如果浏览器支持的话,那么在js里面引用的DOM就会存在这个属性
function hasPlaceholderSupport() {
var input = document.createElement('input');
return ('placeholder' in input);
}

而如果浏览器不支持placeholder特性,那你就需要一个fallback策略来处理,比如MooTools,Dojo,或者其他JavaScript工具。(现在dojo可以用的少了,国内更多的是jQuery和ExtJS。)
复制代码
代码如下:

/* jQuery 代码,当然,记得引入jQuery的库哦*/
$(function(){
if(!hasPlaceholderSupport()){
// 获取address元素
var $address = $("input[name='address']");
placeholder = $address.attr("placeholder");
// 绑定 focus事件
$address.bind('focus',function(){
if(placeholder == $address.val()){
$address.val('');
}
});
// 失去焦点事件
$address.bind('blur',function(){
if('' == $address.val()){
$address.val(placeholder);
}
});
}
});

placeholder 是浏览器另一个伟大的附加属性用于取代js片段,你甚至可以编辑HTML5的placeholder样式.
全部代码如下:
复制代码
代码如下:

<!DOCTYPE HTML>
<html>
<head>
<title> HTML5 placeholder属性演示 </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="renfufei@qq.com">
<meta name="Description" content="original=http://davidwalsh.name/html5-placeholder">
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
// 在JS中创建一个input元素,并判断元素有没有一个叫做placeholder的属性
// 如果浏览器支持的话,那么在js里面引用的DOM就会存在这个属性
function hasPlaceholderSupport() {
var input = document.createElement('input');
return ('placeholder' in input);
}
/* jQuery 代码,当然,记得引入jQuery的库哦*/
$(function(){
if(!hasPlaceholderSupport()){
// 获取address元素
var $address = $("input[name='address']");
placeholder = $address.attr("placeholder");
// 绑定 focus事件
$address.bind('focus',function(){
if(placeholder == $address.val()){
$address.val('');
}
});
// 失去焦点事件
$address.bind('blur',function(){
if('' == $address.val()){
$address.val(placeholder);
}
});
}
});
</script>
</head>
<body>
<div>
<form method="post" action="">
<input type="text" name="address" placeholder="请输入常住地址...">
<input type="submit" value="测试">
</form>
</div>
</body>
</html>
HTML / CSS 相关文章推荐
CSS3地图动态实例代码(圆圈向外扩散)
Jun 15 HTML / CSS
CSS3制作酷炫的条纹背景
Nov 09 HTML / CSS
IE支持HTML5的解决方法
Oct 20 HTML / CSS
html5 学习简单的拾色器
Sep 03 HTML / CSS
突破canvas语法限制 让他支持链式语法
Dec 24 HTML / CSS
HTML5中新标签和常用标签详解
Mar 07 HTML / CSS
不可轻视HTML5!App三年内将被html5顶替彻底消失
Nov 18 HTML / CSS
Html5 audio标签样式的修改
Jan 28 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
Jul 02 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
Jan 14 HTML / CSS
html5实现输入框fixed定位在屏幕最底部兼容性
Jul 03 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
Dec 08 HTML / CSS
5个你不知道的HTML5的接口介绍
Aug 07 #HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
Aug 06 #HTML / CSS
使用HTML5拍照示例代码
Aug 06 #HTML / CSS
HTML5 Canvas阴影使用方法实例演示
Aug 02 #HTML / CSS
HTML5 Canvas自定义圆角矩形与虚线示例代码
Aug 02 #HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
Aug 02 #HTML / CSS
使用HTML5的File实现base64和图片的互转
Aug 01 #HTML / CSS
You might like
数据库的日期格式转换
2006/10/09 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
一百行JS代码实现一个校验工具
2019/04/30 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
Python实现的一个简单LRU cache
2014/09/26 Python
Python中的列表知识点汇总
2015/04/14 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
python re模块findall()函数实例解析
2018/01/19 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
python实现数字炸弹游戏程序
2020/07/17 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
英国网上购买门:Direct Doors
2018/06/07 全球购物
2014学雷锋活动心得体会
2014/03/10 职场文书
产品质量承诺范本
2014/03/31 职场文书
银行委托书范本
2014/04/04 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs