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 网页下拉菜单代码解释 中文翻译
Feb 27 HTML / CSS
CSS3的Border-radius轻松制作圆角
Dec 24 HTML / CSS
用CSS3的box-reflect来制作倒影效果
Nov 15 HTML / CSS
css3+伪元素实现鼠标移入时下划线向两边展开的效果
Apr 25 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
Sep 15 HTML / CSS
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
Dec 25 HTML / CSS
使用phonegap查找联系人的实现方法
Mar 31 HTML / CSS
canvas 下载二维码和图片加水印的方法
Mar 21 HTML / CSS
Html5移动端适配IphoneX等机型的方法
Jun 25 HTML / CSS
详解CSS不定宽溢出文本适配滚动
May 24 HTML / CSS
HTML5 语义化标签(移动端必备)
Aug 23 HTML / CSS
基于CSS制作创意端午节专属加载特效
Jun 01 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
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
详解js类型判断
2018/05/22 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
编程语言Python的发展史
2014/09/26 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
python字符串Intern机制详解
2019/07/01 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
Python3常用内置方法代码实例
2019/11/18 Python
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
厨师岗位职责
2013/11/12 职场文书
企业新年寄语
2014/04/04 职场文书
国际商务专业求职信
2014/07/15 职场文书
庆七一宣传标语
2014/10/08 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫
浅谈Python中对象是如何被调用的
2022/04/06 Python
MySQL池化框架学习接池自定义
2022/07/23 MySQL