针对IE9不支持placeholder的兼容处理方法代码

IE9及IE9以下浏览器不支持placeholder属性,对IE9的placeholder兼容性处理方法通常是把placeholder的属性值放在value属性中,但这样不利于判断值是否为空,兼容性比较好一个方法是用一个元素覆盖在输入框上面代替placeholder,点击时再隐藏。

supportplaceholderforie9.jpg

HTML代码

<div class="input">
	<label class="placeholder" for="inpName"><i class="rq">Name</i></label>
	<input type="text" id="inpName" class="inpText text" value="" placeholder="输入邮箱地址"/>
</div>

CSS代码

.input{position:relative;overflow:hidden;}
.inpText{display:block;}
.placeholder{cursor:text;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;color:#999;font-size:16px;line-height:30px;}
.placeholder i{position:relative;font-style:normal;display:block;}
.placeholder .rq:after{content:'*';color:#c40009;display:inline-block;margin-left:5px;}

jquery代码

function isSupportPlaceholder() {
    var input = document.createElement('input');
    return 'placeholder' in input;
}
$(function(){
	if(!isSupportPlaceholder()){
		var inpText = $('.inpText');
		inpText.each(function(){
			if($(this).val() == ''){
				$(this).siblings('.placeholder').show();
			}		
		});
		inpText.focus(function(){
			$(this).siblings('.placeholder').hide();
		}).blur(function(){
			if($(this).val() == ''){
				$(this).siblings('.placeholder').show();
			}
		});
	}
});
关键词: jquery特效 html5教程