试图只允许从今天的日期起 45-90 天之间选择日期

时间:2021-07-16 22:08:14

标签: javascript html jquery

这是我目前拥有的代码,但我不确定如何更改此功能以检查选择是否是在 90 天后进行的。到目前为止,当您单击日期选择器时,它会从今天跳到 45 天,并且不允许用户从之前选择任何内容,但问题是它允许过去 90 天,这是我不想要的。< /p>

https://jsfiddle.net/dwyvtajg/

    <label id="asterisk">*</label> <label class="description" for="element_2">Event Date:</label><br /><label>Reservations must be made between <b>45-90 days in advance</b> of the event date</label> <br /><input onclick="one()" required="" type="date" oninput="this.className = ''" name="Event-Date" id="datepicker1" min="2019-10-02" />
<script>if ( $('#datepicker1')[0].type != 'date' ) $('#datepicker1').datepicker();</script>


 <script>
    function formatISOLocal(d) {
      let z = n => ('0' + n).slice(-2);
      return d.getFullYear()+'-'+z(d.getMonth()+1) + '-' + z(d.getDate());
    }
    
     function one() {
      let inp = document.querySelector('#datepicker1');
       let d = new Date(new Date().getTime()+(45*24*60*60*1000));
      inp.min = formatISOLocal(d);
      inp.defaultValue = inp.min;
      d.setFullYear(d.getFullYear() , d.getMonth() + 6);
      inp.max = formatISOLocal(d);
      // Debug
      console.log(inp.outerHTML);
    }
    </script>

感谢大家的帮助......编辑这一行修复了它!!! d.setFullYear(d.getFullYear(), d.getMonth(), d.getDate() +45);

1 个答案:

答案 0 :(得分:1)

肯定需要一个小时来查看docs。否则你会让自己变得更难。

例如,设置最小和最大日期 - 瞧:


$(function() {
    $( "#datepicker1" ).datepicker({
        maxDate:'+90d',
        minDate: '+45d',
        onSelect: function(date) {}
    });
});