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 相关文章推荐
全面总结使用CSS实现水平垂直居中效果的方法
Mar 10 HTML / CSS
利用CSS3的特性改变文本选中时的颜色
Sep 11 HTML / CSS
CSS3网格的三个新特性详解
Apr 04 HTML / CSS
用CSS3写的模仿iPhone中的返回按钮
Apr 04 HTML / CSS
css 元素选择器的简单实例
May 23 HTML / CSS
css3 仿写阿里云水纹效果的示例代码
Feb 10 HTML / CSS
input元素的url类型和email类型简介
Jul 11 HTML / CSS
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
Jan 09 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
May 11 HTML / CSS
HTML5 画布canvas使用方法
Mar 18 HTML / CSS
Html5页面内使用JSON动画的实现
Jan 29 HTML / CSS
canvas 绘图时位置偏离的问题解决
Sep 16 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
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
php生成短网址示例
2014/05/05 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
Nginx实现反向代理
2017/09/20 Servers
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python生成随机MAC地址
2015/03/10 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
解决Python中回文数和质数的问题
2019/11/24 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
python3排序的实例方法
2020/10/20 Python
python自动化办公操作PPT的实现
2021/02/05 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
.net软件工程师面试题
2015/03/31 面试题
Exception类的常用方法
2012/06/16 面试题
就业推荐表自我鉴定
2013/10/29 职场文书
医药代表个人求职信范本
2013/12/19 职场文书
认识深刻的检讨书
2014/02/16 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
见习报告的格式
2014/11/04 职场文书
升学宴学生致辞
2015/07/27 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA