【问题标题】:Disable dates in the past in datepicker在日期选择器中禁用过去的日期
【发布时间】:2021-04-15 16:46:28
【问题描述】:

在这里,我已经实现了在“开始日期”日期选择器中禁用当前日期的先前日期并在“结束日期”日期选择器中禁用所选“开始日期”的先前日期的代码。它工作得很好,但突然之间它不会在“开始日期”日期选择器中禁用当前日期的先前日期。

查看:

<div class="form-group col-md-4">
  <label for="pwd">Start Date</label>
  <input type="date" class="form-control" id='Sdate' name='Sdate' min="" value="">
  <div class="alert-danger"><?php echo form_error('Sdate'); ?></div>

</div>
<div class="form-group col-md-4">
  <label for="pwd">End Date</label>
  <input type="date" class="form-control" id='Edate' name='Edate' value="<?php echo set_value('Edate'); ?>">
  <div class="alert-danger"><?php echo form_error('Edate'); ?></div>
</div>

 

脚本:

$(document).ready(function(){


 var today = new Date();
 var sdate = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+(today.getDate() < 10 ? '0'+today.getDate() : today.getDate());
 $('#Sdate').prop('min', sdate);

 $('#Sdate').on('change', function(){
    $('#Edate').prop('min', $(this).val() );
 });

});

【问题讨论】:

  • 这很好用,一旦你修正了错字:缺少});关闭$(document).ready(function(){。见jsfiddle.net/b4dp0mnL
  • 它在我的原始代码中没有丢失,我只是在这里错过了,因为我不需要包含所有代码:),它仍然无法正常工作,即使在你分享的 jsfiddle 中它也没有工作。@Vickel

标签: jquery codeigniter datepicker


【解决方案1】:

您的变量 sdate 返回 '2021-1-11' 但应该是 '2021-01-11'

只需稍微更改您的代码,为整个月添加前导 0

$(document).ready(function() {

  const options1 = {
    year: 'numeric',
    month: 'numeric',
    day: 'numeric'
  };
  var today = new Date();
  y = today.getFullYear()
  m = today.getMonth() + 1
  m = m < 10 ? '0' + m : m;
  d = today.getDate()
  d = d < 10 ? '0' + d : d;
  sdate = y + '-' + m + '-' + d

  $('#Sdate').prop('min', sdate);

  $('#Sdate').on('change', function() {
    $('#Edate').prop('min', $(this).val());
  });
});

在此处查看working jsfiddle,过去的日期现已禁用

【讨论】:

    猜你喜欢
    • 2016-07-03
    • 2013-03-23
    • 2018-10-16
    • 1970-01-01
    • 2017-05-12
    • 2017-03-02
    • 1970-01-01
    • 2015-11-01
    • 2019-11-29
    相关资源
    最近更新 更多