input日历类型placeholder移动端不起作用

H5 date输入框兼容方案
本文介绍了解决H5中input type='date'在移动端显示空白及placeholder失效的问题。通过CSS伪元素设置默认提示,并利用JavaScript进行焦点事件处理,实现了良好的用户体验。

pc端对h5input type=‘date’的兼容不高,好在插件多,而对于移动端来说,系统自带的date非常好用,而且功能强大,对前端来说可以去除好多不必要的代码及事件操控。

近期有用到过这个方便的输入框,发现手机上一进去时显示为一片空白,设置的placeholder不起作用,然后上网查了下,解决方案为css和js协同解决

css部分通过伪类解决

input[type=data]:before{
    content:attr(placeholder);
    color:#bbb  
}

js部分分装两个方法更好的达到体验效果

var COMMONJS={ 
//清除日历类型默认提示
    delDatePlaceholder:function(ele){
        ele.removeAttribute('placeholder');
    },
    //添加日历类型默认提示
    setDatePlaceholder:function(ele){
        if(!ele.value){ele.setAttribute('placeholder','请选择日期');}
    },
//初始化日历提示
initDatePlaceholder:function(){
$("input[type=date]").each(function(){
if(this.value){
this.removeAttribute('placeholder')
}
});
}
}

设置好了上面的接下来就是调用了

 <input type="date" onfocus="COMMONJS.delDatePlaceholder(this)" onblur="COMMONJS.setDatePlaceholder(this)">

这样就大工告成了。

转载于:https://www.cnblogs.com/mapletao/p/6479536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值