如何在查询移动设备中阻止(禁用)在type =“date”。中选择未来日期?

时间:2013-07-19 10:18:04

标签: jquery-mobile

你能告诉我如何在查询手机中阻止在type =“date”中选择未来的日期吗? 我在标题上有按钮(+)。点击我打开一个弹出屏幕。有一个日期字段。我需要在日期选择器中阻止或隐藏未来日期(type =“date”)。

这里是小提琴 http://jsfiddle.net/Gajotres/7JqRG/6/

$(document).on('pagebeforeshow', '#Home', function(){ 
    $(document).on( "popupafteropen", "#CaseInformationScreen",function( event, ui ) {
        var now = new Date();

        var day = ("0" + now.getDate()).slice(-2);
        var month = ("0" + (now.getMonth() + 1)).slice(-2);

        var today = now.getFullYear()+"-"+(month)+"-"+(day) ;

        $('#caseDate').val(today);    
    });        
});

3 个答案:

答案 0 :(得分:2)

工作示例:http://jsfiddle.net/Gajotres/7JqRG/9/

$(document).on('pagebeforeshow', '#Home', function(){ 
    $(document).on( "popupafteropen", "#CaseInformationScreen",function( event, ui ) {
        var now = new Date();

        var day = ("0" + now.getDate()).slice(-2);
        var month = ("0" + (now.getMonth() + 1)).slice(-2);

        var today = now.getFullYear()+"-"+(month)+"-"+(day) ;

        $('#caseDate').attr('max', today);
        $('#caseDate').val(today);    
    });        
});

参考文档:http://html5doctor.com/html5-forms-input-types/

不幸的是因为max和min在iOS上不起作用,这里也是解决这个问题的javascript方法:http://jsfiddle.net/Gajotres/7JqRG/10/

var dateControler = {
    currentDate : null
}

$(document).on('pagebeforeshow', '#Home', function(){ 
    $(document).on( "popupafteropen", "#CaseInformationScreen",function( event, ui ) {
        var now = new Date();

        var day = ("0" + now.getDate()).slice(-2);
        var month = ("0" + (now.getMonth() + 1)).slice(-2);

        var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
        $('#caseDate').val(today);
        dateControler.currentDate = today;
    });        
    $(document).on( "change", "#caseDate",function( event, ui ) {
        var now = new Date();
        var selectedDate = new Date($(this).val());
        if(selectedDate > now) {
            $(this).val(dateControler.currentDate)
        } else {
            dateControler.currentDate = $(this).val();
        }
    });    
});

答案 1 :(得分:1)

我们可以在输入类型中设置max和min属性,并以ISO格式(例如2010-08-14)分配日期,首先是四位数的年份,然后是月份,最后一个位置是月份的日期。 / p>

<input type="date" min="2010-08-14" max="2011-08-14" value="2010-08-14"/>

请注意:

  • 月份和日期必须始终以两位数字表示(例如01表示1月份而不是1位数字)
  • 仅适用于Android

答案 2 :(得分:0)

我们可以设置日期输入类型的“最大”和“最小”日期,使用属性隐藏未来日期。

    $('#caseDate').attr("max",today);
    $('#caseDate').attr("min",today);