在 Jquery Ui Datepicker 中禁用今天之后的未来日期

Posted

技术标签:

【中文标题】在 Jquery Ui Datepicker 中禁用今天之后的未来日期【英文标题】:Disable future dates after today in Jquery Ui Datepicker 【发布时间】:2014-03-27 05:04:41 【问题描述】:

我想在 Jquery Ui Datepicker 中禁用今天之后的所有未来日期

这是Demo:

代码:

$( "#start_date" ).datepicker(

         
            maxDate: '0', 
            beforeShow : function()
            
                jQuery( this ).datepicker('option','maxDate', jQuery('#end_date').val() );
            ,
            altFormat: "dd/mm/yy", 
            dateFormat: 'dd/mm/yy'

        

);

$( "#end_date" ).datepicker( 

        
            maxDate: '0', 
            beforeShow : function()
            
                jQuery( this ).datepicker('option','minDate', jQuery('#start_date').val() );
             , 
            altFormat: "dd/mm/yy", 
            dateFormat: 'dd/mm/yy'

        

);

【问题讨论】:

Disable future dates in jQuery UI Datepicker的可能重复 【参考方案1】:

试试这个

 $(function() 
  $( "#datepicker" ).datepicker(  maxDate: new Date() );
 );

或者您可以使用以下方式实现此目的:

$(function() 
  $( "#datepicker" ).datepicker(  maxDate: 0 );
);

Reference

DEMO

UPDATED ANSWER

【讨论】:

@Amit:谢谢你的回答,它很有魅力。 不知何故这个$('#birth_date').datetimepicker( timepicker:false, format:'d/m/Y', maxDate : '0', maxDateTime:new Date() ); 不起作用。 $(function() $( "#datepicker" ).datepicker( maxDate: new Date() ); );为我工作【参考方案2】:

这对我有用endDate: "today"

  $('#datepicker').datepicker(
        format: "dd/mm/yyyy",
        autoclose: true,
        orientation: "top",
        endDate: "today"

  );

SOURCE

【讨论】:

这个endDate: "today"帮助了我【参考方案3】:

就我而言,我已将此属性赋予输入标签

data-date-start-date="0d" data-date-end-date="0d"

【讨论】:

如果你有一个适用于所有日期选择器的通用 JS 代码,并且你需要在一个或两个字段中限制日期,那么这应该是首选。【参考方案4】:

你可以这样做

$(function() 
    $( "#datepicker" ).datepicker(  maxDate: new Date );
  );

JSFiddle

仅供参考:在检查documentation 时,发现它也接受数值。

数字:从今天开始的天数。例如 2 代表两天 从今天开始,-1 代表昨天。

所以0 代表今天。所以你也可以这样做

 $( "#datepicker" ).datepicker(  maxDate: 0 );

【讨论】:

请修改我的小提琴 @CodeHunter 我可以知道start_dateend_date 是哪一个吗? 开始日期很明显【参考方案5】:

将 maxDate 更改为当前日期

maxDate: new Date()

它将当前日期设置为最大值。

【讨论】:

【参考方案6】:

如果您要附加 Dtpicker,请使用以下代码

$('#enddate').appendDtpicker(
    "dateOnly": true,
    "dateFormat": "YYYY-MM-DD",
    "closeOnSelected": true,
    maxDate: new Date()         
);

【讨论】:

【参考方案7】:

日期选择器没有maxDate 选项。我使用了这个 endDate 选项。效果很好。

$('.demo-calendar-default').datepicker(
  autoHide: true,
  zIndex: 2048,
  format: 'dd/mm/yyyy',
  endDate: new Date()
);

【讨论】:

【参考方案8】:

//禁用当前日期之后的未来日期

$("#datepicker").datepicker('setEndDate', new Date());

//禁用当前日期之后的过去日期

$("#datepicker").datepicker('setEndDate', new Date());

【讨论】:

您禁用过去日期的代码看起来不正确.. 不应该是开始日期吗?【参考方案9】:
maxDate: new Date() 

它对我来说工作正常,在日期范围选择器中禁用当前日期

【讨论】:

我认为这不会对现有答案增加任何内容。

以上是关于在 Jquery Ui Datepicker 中禁用今天之后的未来日期的主要内容,如果未能解决你的问题,请参考以下文章

jQuery datepicker - 在初始化后更改 .ui-datepicker-calendar 的显示

将 JQuery UI Datepicker 与来自 Jquery UI 主题的图标一起使用

Rails,如何在特定页面上显示 jquery-ui-datepicker 日历?

使用 jquery-ui/datepicker 的内存泄漏

jquery UI datepicker汉化

jquery ui datepicker字体大小很大