HTML5 placeholder(空白提示) 属性

简介: 原文地址:HTML5′s placeholder Attribute  演示地址: placeholder演示  原文日期: 2010年08月09日 翻译日期: 2013年8月6日 浏览器引入了许多的HTML5 特性: 有些是基于HTML的,有些是JavaScript APIs形式的,但都很有用。

原文地址: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>



目录
相关文章
WK
|
2月前
|
存储 移动开发 前端开发
HTML5新增了哪些其他元素和属性
这段文字介绍了HTML5中新增的多种元素和属性,包括页面布局元素如header、nav等,表单元素如email、tel输入框等,以及其他元素如canvas、svg等。此外,还介绍了全局及表单属性,例如contenteditable、placeholder等,这些新功能显著增强了HTML5在现代网页设计与开发中的实用性与灵活性。
WK
58 1
|
12天前
|
移动开发 HTML5
HTML5 表单属性3
`&lt;input&gt;` 标签的 `formaction`、`formenctype` 和 `formmethod` 属性分别用于指定表单提交的 URL 地址、数据编码类型和提交方法,这些属性可覆盖 `&lt;form&gt;` 标签中的相应属性,并且主要适用于 `type=&quot;submit&quot;` 和 `type=&quot;image&quot;` 的输入类型。
|
1月前
|
搜索推荐 前端开发 UED
哪些 HTML 全局属性在 SEO 优化中比较重要?
【10月更文挑战第27天】这些HTML全局属性通过不同的方式为搜索引擎提供了更丰富、准确的页面信息,有助于提高页面的可索引性、相关性和用户体验,从而在SEO优化中发挥着重要的作用。开发者应充分重视并合理运用这些属性,以提升网站在搜索引擎中的排名和流量。
|
1月前
|
前端开发 搜索推荐 算法
|
1月前
|
前端开发 JavaScript 开发者
HTML 中的全局属性和局部属性是否可以相互覆盖?
【10月更文挑战第27天】HTML中的全局属性和局部属性在正常使用情况下不会相互覆盖,但在涉及CSS样式和JavaScript操作等特殊情况下,可能会出现类似覆盖的效果。开发者需要理解属性的功能、作用域和优先级,遵循最佳实践,以确保HTML文档的结构清晰、功能正常且易于维护。
|
1月前
|
存储 移动开发 前端开发
HTML全局属性
【10月更文挑战第27天】
HTML 属性参考手册
HTML属性参考手册提供了常用的HTML属性列表,包括`class`、`id`、`style`、`title`等,用于定义元素的样式、唯一标识、额外信息等。此外,还包括`href`、`src`、`alt`、`name`、`value`、`target`、`type`和`placeholder`等,分别用于链接、资源路径、替代文本、表单元素名称和值、链接打开方式、表单元素类型及占位符文本的定义。
HTML 属性
HTML属性为元素提供额外信息,格式为name=&quot;value&quot;,置于开始标签内。如&lt;a href=&quot;http://www.runoob.com&quot;&gt;,其中href为属性名,URL为值。属性值应加引号,推荐使用小写。
|
2月前
|
移动开发 JavaScript 前端开发
HTML5 表单属性详解
HTML5引入了多种新的表单属性,使表单创建与验证更加便捷高效。新增的输入类型包括`email`、`url`、`tel`等,常用属性有`placeholder`、`required`等。表单元素如`&lt;form&gt;`可设置提交方法和目标URL,`&lt;button&gt;`及`&lt;input type=&quot;submit&quot;&gt;`用于提交。新元素`&lt;datalist&gt;`和`&lt;output&gt;`提供更多功能。HTML5还提供了内置表单验证机制,增强用户体验。
WK
|
2月前
|
移动开发 UED HTML5
HTML5新增了哪些表单属性
HTML5新增的表单属性包括:autocomplete(启用或禁用自动完成建议)、autofocus(自动聚焦)、form(关联表单外的表单元素)、formaction等重写版本(自定义提交行为)、height/width(设置图像输入尺寸)、list(指定可选列表)、min/max/step(设置数值范围)、multiple(多选文件/选项)、pattern(正则表达式验证)、placeholder(占位符提示)和required(必填校验)。这些新功能显著提升了表单的灵活性和用户体验,使数据输入更加准确有效。
WK
31 1