placeholder兼容ie8

placeholder在低版本浏览器下兼容效果不是很好,在网上找了一些文章,很多的实现是将input里面的值赋值成placeholder,这样会有一个问题,input没有值的情况,获取form表单input的值不是为空而是placeholder的值,这个也不是想要的结果,所以自己简单的封装了一个方法来实现placeholder的效果。

html部分
  <div class="login_box ">
     <div class="login_left ">
         <div class="left_text">
              <input type="password" id="ps" jr_placeholder="密码">
          </div>
          <div class="left_text">
             <input class="y_box" type="text" id="yzm" jr_placeholder="验证码">
              <div class="yzm_box"></div>
          </div>
          <div class="denglu">登录</div>
       </div>
   </div>

input元素上需要加上jr_placeholder(placeholder的值)id属性

css部分
父元素加上相对定位
.left_text{
    position:relative;
}
.holders{
  position: absolute;
  left: 5px;
  top: 6px;
  font-size: 13px;
}
js部分
$(function () {
    function showPlaceholder() {
        var targetObj = $('input[jr_placeholder]');
        targetObj.each(function (k, v) {
            var _id = $(v).attr('id');
            var _placeholder = $(v).attr('jr_placeholder');
            $(v).before('<label for="' + _id + '" class="holders">' + _placeholder + '</label>');
            $(v).val() && $('label[for=' + _id + ']').hide();
        })
        $(document).on('focus', 'input[jr_placeholder]', function () {
            var _id = $(this).attr('id');
            $('label[for=' + _id + ']').hide();
        })
        $(document).on('blur', 'input[jr_placeholder]', function () {
            var _id = $(this).attr('id');
            !$(this).val() && $('label[for=' + _id + ']').show();
        })
    }
    $.extend({
        showPlaceholder:showPlaceholder
    })
});

直接调用$.showPlaceholder()初始化下函数即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值