HTML5 placeholder(空白提示) 属性

原文地址:HTML5′s placeholder Attribute javascript

演示地址: placeholder演示 
php

原文日期: 2010年08月09日
css

翻译日期: 2013年8月6日html


浏览器引入了许多的HTML5 特性: 有些是基于HTML的,有些是JavaScript APIs形式的,但都颇有用。其中我最喜欢的一个就是为input元素引入了placeholder属性。
placeholder属性显示引导性文字直到输入框获取输入焦点,当有了用户输入内容后引导性内容将会自动隐藏。你确定见过用JavaScript实现的这种技术成千上万次了,可是来自HTML5的原生支持通常来讲会更好一些。
html5

HTML 代码 以下:
java

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


你要作的仅仅是添加一个placeholder属性域,以及一些引导性的文字内容,不须要额外的JavaScript脚原本实现这种效果,是否是感受很棒?
测试 placeholder 的支持度

(注意这是2010年的文章,到如今,2013年,主流浏览器应该都支持了.)
jquery

既然 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>
相关文章
相关标签/搜索