关于IE支持placeholder属性解决方案

在html5中,文本框,也就是input, type为text,或者password,新增了一个属性placeholder,也就是占位符, 当输入的时候,占位符就会消失。

这个属性非常好用,因为有这个必要html5才会有这个属性,然而在IE下,就没有这效果,那么我们来实现IE9的兼容效果

我写了一个jQuery的插件,让IE浏览器实现这效果
代码如下
jQuery.fn.placeholder = function(){
var i = document.createElement('input'),
placeholdersupport = 'placeholder' in i;
if(!placeholdersupport){
var inputs = jQuery(this);
inputs.each(function(){
var input = jQuery(this),
text = input.attr('placeholder'),
pdl = 0,
height = input.outerHeight(),
width = input.outerWidth(),
placeholder = jQuery('<span class="phTips">'+text+'</span>');
try{
pdl = input.css('padding-left').match(/\d*/i)[0] * 1;
}catch(e){
pdl = 5;
}
placeholder.css({'margin-left': -(width-pdl),'height':height,'line-height':height+"px",'position':'absolute', 'color': "#6C7C88", 'font-size' : "12px"});
placeholder.click(function(){
input.focus();
});
if(input.val() != ""){
placeholder.css({display:'none'});
}else{
placeholder.css({display:'inline'});
}
placeholder.insertAfter(input);
input.keyup(function(e){
if(jQuery(this).val() != ""){
placeholder.css({display:'none'});
}else{
placeholder.css({display:'inline'});
}
});
});
}
return this;
};

代码不复杂简单易懂~直接写入JS文件引用便可调用,不与firefox,google的属性冲突

引入jQuery库,然后引入这个插件,调用如下:
 
  

$(function (){

        jQuery('input[placeholder]').placeholder();

    }

);

样式也可以自由修改如下:

 
  

placeholder.css({

'margin-left': -(width-pdl),

'height':height,

'line-height':height+"px",

'position':'absolute',

'color': "#cecfc9",

'font-size' : "12px"});

如果存在什么bug请大家回复以便及时修正~

 



 




转载于:https://www.cnblogs.com/JesseLu/p/4019294.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值