从文本到日期和向后更改输入类型在移动Safari中不起作用

时间:2015-12-07 13:13:44

标签: javascript css input mobile-safari

当我必须设置占位符文本以输入[type =“date”]时,我遇到了问题。

我已经尝试了这个method,但在移动版Safari中这不起作用。

此处如果快JsFiddle DEMO

这里是代码的这一部分:

<form>
    <input type="text" placeholder="some date" onfocus="(this.type='date')" onblur="(this.type='text')" />
</form>

有没有人想过如何处理这种情况?

1 个答案:

答案 0 :(得分:0)

我有一个愚蠢的建议。我使用div来替换类型为text的输入。日期的真实输入是display:none; ios不支持这种情况,我尝试了很多方法来解决这个问题,但这并不重要。尝试以下方法,你不喜欢它。^ - ^

&#13;
&#13;
$(function(){
        document.getElementById('div').addEventListener('click',function(e){
            if(document.getElementById('input').style.display == 'none'){
                document.getElementById('input').style.display = ''
            }
        },false)
        document.getElementById('input').addEventListener('blur',function(e){
            debugger;
            document.getElementById('input').style.display = 'none'
            document.getElementById('div').innerHTML = document.getElementById('input').value;
        })

})
&#13;
 <div id="div" style="height:47px;border:1px solid #000">
       <input id="input" type="date"  placeholder="some date"    style="display:none;"/>
 </div>
&#13;
&#13;
&#13;

<script type="text/javascript">

$(function(){
        document.getElementById('div').addEventListener('click',function(e){
            if(document.getElementById('input').style.display == 'none'){
                document.getElementById('input').style.display = ''
            }
        },false)
        document.getElementById('input').addEventListener('blur',function(e){
            debugger;
            document.getElementById('input').style.display = 'none'
            document.getElementById('div').innerHTML = document.getElementById('input').value;
        })
})

</script>