代码之家  ›  专栏  ›  技术社区  ›  moses toh

为什么在选择今天以外的日期时,计时器不能降级?

  •  0
  • moses toh  · 技术社区  · 7 年前

    我的html代码如下:

    <div class="container">
        <div class="row">
            <div class='col-sm-6'>
                <div class="form-group">
                    <input type='text' class="form-control" id='datepicker' data-date-format="DD-MM-YYYY" />
                </div>
            </div>
    
            <div class='col-sm-6'>
                <div class="form-group">
                    <input type='text' class="form-control" id='timepicker' data-date-format="HH:mm" />
                </div>
            </div>
        </div>
    </div>
    <button id="btnSubmit">
        Submit
    </button>
    

    $(function () {    
        $('#datepicker').datetimepicker();
    
        $('#timepicker').datetimepicker({
            minDate: moment().startOf('minute').add(300, 'm'),
        });
    });
    $("#btnSubmit").click(function() {
        value = document.getElementById('datetimepicker').value;
        console.log(value)
    });
    

    https://jsfiddle.net/8jpmkcr5/89/

    如果我单击计时器并单击递减小时图标,则它不起作用。我知道这是因为以下代码: minDate: moment().startOf('minute').add(300, 'm') .我希望代码只在这一天起作用。除了今天,代码不起作用

    2 回复  |  直到 7 年前
        1
  •  1
  •   VincenzoC    7 年前

    你的 #datepicker #timepicker 无关 ,它们是 , 使有联系 他们你可以手动设置 minDate 属于 使用 minDate 作用

    您可以为添加列表生成器 dp.change 对于 #计时器选择器 如果所选日期是当前日期(使用momentjs isSame

    你必须添加 minDate 也可选择 如果你想禁用过去的日期,正如你在评论中所说。

    $(function () {    
      $('#datepicker').datetimepicker({
        minDate: moment().startOf('day')
      }).on('dp.change', function(e){
        if( e.date && e.date.isSame(moment(), 'd') ){
          var min = moment().startOf('minute').add(300, 'm');
          $('#timepicker').data("DateTimePicker").minDate(min);
        } else {
          $('#timepicker').data("DateTimePicker").minDate(false);
        }
      });
      
      $('#timepicker').datetimepicker({
        minDate: moment().startOf('minute').add(300, 'm'),
      });
    });
    
    
    $("#btnSubmit").click(function() {
       value = document.getElementById('datepicker').value;
       console.log(value)
       valueTime = document.getElementById('timepicker').value;
       console.log(valueTime)
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script>
    
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css" rel="stylesheet"/>
    
    <div class="container">
        <div class="row">
            <div class='col-sm-6'>
                <div class="form-group">
                        <input type='text' class="form-control" id='datepicker' data-date-format="DD-MM-YYYY" />
                </div>
            </div>
            
            <div class='col-sm-6'>
                <div class="form-group">
                    <input type='text' class="form-control" id='timepicker' data-date-format="HH:mm" />
                </div>
            </div>
        </div>
    </div>
    
    <button id="btnSubmit">
        Submit
    </button>

    #日期选择器 都是无关的,所以跟 #计时器选择器 #日期选择器 ).

        2
  •  0
  •   ash    7 年前

    如果你想把输入限制到今天,为什么要在 选取器?您应该设置 日期