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 旋转按钮 使用CSS3创建一个旋转可变色按钮
Dec 31 HTML / CSS
CSS改变网页中鼠标选中文字背景颜色例子
Apr 23 HTML / CSS
CSS3绘制不规则图形的一些方法示例
Nov 07 HTML / CSS
css3 边框、背景、文本效果的实现代码
Mar 21 HTML / CSS
纯css3制作煽动翅膀的蝴蝶的示例
Apr 23 HTML / CSS
HTML5调用手机摄像头拍照的实现思路及代码
Jun 15 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
Aug 01 HTML / CSS
canvas绘制视频封面的方法
Feb 05 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
Aug 05 HTML / CSS
AmazeUI 列表的实现示例
Aug 17 HTML / CSS
浅谈amaze-ui中datepicker和datetimepicker注意的几点
Aug 21 HTML / CSS
CSS Transition通过改变Height实现展开收起元素
Aug 07 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
header()函数使用说明
2006/11/23 PHP
PHP中cookies使用指南
2007/03/16 PHP
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
Python运维开发之psutil库的使用详解
2018/10/18 Python
python write无法写入文件的解决方法
2019/01/23 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
如何用python处理excel表格
2020/06/09 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
关键字final的用法
2013/10/02 面试题
摄影助理岗位职责
2014/02/07 职场文书
企业诚信承诺书
2014/05/23 职场文书
移交协议书
2014/08/19 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
浅谈Python魔法方法
2021/06/28 Java/Android
分析Python list操作为什么会错误
2021/11/17 Python
Python Pygame实战之塔防游戏的实现
2022/03/17 Python