让IE支持placeholder属性

html 5 有个很棒的属性,placeholder,在鼠标聚焦到input输入框上面时候,提示文字会消失,失去焦点之后,又会出现:

但是在不支持html5的低版本的浏览器中,placeholder属性是无效的,为了解决这个问题,因此,人为的去实现placeholder属性:
/*
  * jQuery placeholder, fix for IE6,7,8,9
  * @author JENA
  * @since 20131115.1504
  * @website ishere.cn
  */
var JPlaceHolder = {
     //检测
     _check : function (){
         return 'placeholder' in document.createElement( 'input' );
     },
     //初始化
     init : function (){
         if (! this ._check()){
             this .fix();
         }
     },
     //修复
     fix : function (){
         jQuery( ':input[placeholder]' ).each( function (index, element) {
             var self = $( this ), txt = self.attr( 'placeholder' );
             self.wrap($( '<div></div>' ).css({position: 'relative' , zoom: '1' , border: 'none' , background: 'none' , padding: 'none' , margin: 'none' }));
             var pos = self.position(), h = self.outerHeight( true ), paddingleft = self.css( 'padding-left' );
             var holder = $( '<span></span>' ).text(txt).css({position: 'absolute' , left:pos.left, top:pos.top, height:h, lienHeight:h, paddingLeft:paddingleft, color: '#aaa' }).appendTo(self.parent());
             self.focusin( function (e) {
                 holder.hide();
             }).focusout( function (e) {
                 if (!self.val()){
                     holder.show();
                 }
             });
             holder.click( function (e) {
                 holder.hide();
                 self.focus();
             });
         });
     }
};
//执行
jQuery( function (){
     JPlaceHolder.init();   
});


将上述JS引入页面中,inuput即可显示提示信息(兼容IE10以下)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值