首页 > 云开发 > JavaScript > 正文

后台-系统设置-扩展变量-手机广告位-内容正文顶部

H5 input[type='date'] 优化 pc端和移动端的使用

JavaScript

<input>标签在HTML5中新增了color, date, datetime, datetime-local, month, week, time, email, number, range, search, tel 以及 url新属性。
本篇记录在开发中使用date属性,遇到的一些问题,以及功能扩展:

获取当前日期,并显示在input[type='date']上

html:

<input type='date' id='dataInput'/>

js:

<script>
$(function(){
    var date_now = new Date();
    var year = date_now.getFullYear();
    var month = date_now.getMonth()+1 < 10 ? "0"+(date_now.getMonth()+1) : (date_now.getMonth()+1);
    var date = date_now.getDate() < 10 ? "0"+date_now.getDate() : date_now.getDate();
    var nowDate=year+"-"+month+"-"+date;
    $("#dataInput").val(nowDate);
})
</script>
            
限制日期框选择范围

利用标签属性实现

<input type="date" min="2019-06-01" max="2019-06-20">

max:可选最大日期
min:可选最小日期

js设置最大只能选择到当前日期

html

<input type="date" id="maxDate"/>

js

<script>
$(function(){
    var date_now = new Date();
    var year = date_now.getFullYear();
    var month = date_now.getMonth()+1 < 10 ? "0"+(date_now.getMonth()+1) : (date_now.getMonth()+1);
    var date = date_now.getDate() < 10 ? "0"+date_now.getDate() : date_now.getDate();
    var nowDate=year+"-"+month+"-"+date;
    $("#maxDate").attr("max",nowDate);//最大只能选择到当前日期
})
</script>
 
移动端显示问题

当移动端使用nput[type='date']时 ios系统日历格式是这样 ===> 2019年06月06日
样式上安卓和ios不统一

为了实现样式统一可以利用input[type='text']代替日历控件,显示选择的日期

html

<div class="date-input-box">
    <input type="text" id="dateShow" class="data dateShow"/>
    <input type="date" id="dateInput" class="data dateInput"/>
    <label class="selectIcon"></label>
</div>

css

 /* 日期控件样式 */
         .date-input-box{
            position: relative;
            display: inline-block;
        }
        .data{
            width: 100px;
            height: 24px;
            padding: 0 5px;
            line-height: 24px;
        }
        .dateInput{
            position: absolute;
            left: 0;right: 0;
            z-index: 10;
            opacity: 0;
        }
        .selectIcon {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            right: 10px;
            width: 3px;
            height: 0;
            border-top: 4px solid #999;
            border-left: 4px solid transparent;
            border-right: 4px solid transparent;
            z-index: 8;
        }

js

将 ' - ' 替换成 '/ '

 //dataInput=dataInput.replace(/-/g,'/');
文章来源:segmentfault,作者:A_lin。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:william.shi#ucloud.cn(邮箱中#请改为@)进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
后台-系统设置-扩展变量-手机广告位-内容正文底部

本文标签

优化 移动端 input type PC

推荐文章

热门标签

    热门文章 最新文章 文章云

站内导航

全站搜索