简体   繁体   English

如何从下拉列表中获取年份并准备日期,然后在启动日期范围中设置开始日期和结束日期

[英]How can get year from dropdown and prepare date then set startdate and end date in bootstrap daterange

I have a form, in this form I have one dropdown to select year and text box for datepicker . 我有一个表单,在这个表单中,我有一个dropdown选择datepicker yeartext box I am using bootstrap datepicker . 我正在使用bootstrap datepicker

What I need is, If I select a year from dropdown . 我需要的是,如果我从dropdown选择年份。 I need to set startDate and endDate in datepicker. 我需要在datepicker中设置startDateendDate startDate + 3 is endDate . startDate + 3是endDate

Eg: If I select 2019 from dropdown. 例如:如果我从下拉列表中选择2019。 Datepicker calendar need to start with jan 2019 and end with dec 2022. Datepicker日历需要从2019年1月开始,到2022年12月结束。

Html HTML

    <div class="col-md-6">
       <div class="form-group {{ $errors->has('summerSeasonYear') ? ' has-error' : '' }}">
                                                    <label>@lang('openingClosingSeason.summerSeasonChooseSeasonLabel') <span class="required">*</span></label>

        <select class="form-control" name="summerSeasonYear" id="summerSeasonYear">
          <option value="0">@lang('openingClosingSeason.summerSeasonChooseSeasonSelect')</option>
           <option value="2017" @if(old('summerSeasonYear') == '2017') selected="selected" @endif>2017</option>
           <option value="2018" @if(old('summerSeasonYear') == '2018') selected="selected" @endif>2018</option>
           <option value="2019" @if(old('summerSeasonYear') == '2019') selected="selected" @endif>2019</option>
       </select>
    </div>
  </div>

    <div class="col-md-6">
      <div class="form-group {{ $errors->has('earliest_summer_open') ? ' has-error' : '' }}">
      <label for="earliest_summer_open">@lang('openingClosingSeason.summerSeasonEarliestOpen') <span class="required">*</span></label>
    <input type="text" class="form-control" id="earliest_summer_open" name="earliest_summer_open" placeholder="@lang('openingClosingSeason.summerSeasonEarliestOpenPlaceholder')" data-date-format="dd.mm.yy" readonly="true" value="{{old('earliest_summer_open')}}">
    </div>
 </div>

Script 脚本

var start = '';
    var end   = '';

    setSummerYear(null, null);

    $('#summerSeasonYear').on('change', function(){
        var summerSeasonYear = $("#summerSeasonYear").val();
        $( "#summerSeasonYear" ).attr( "data-summerYear", summerSeasonYear );
        start = new Date();
        end   = new Date(new Date().setYear(start.getFullYear()+1));
        setSummerYear(start, end)
    });


    function setSummerYear(start, end)
    {
        $('#earliest_summer_open').datepicker({
            autoclose: true,
            todayHighlight: true,
            startDate : start,
            endDate   : end
        });
    }

You need to set the dateFormat of the jQuery UI (bootstrap uses jQuery!) datepicker to the format you use first upon initialization. 您需要将jQuery UI(引导程序使用jQuery!)datepicker的dateFormat设置为初始化时首先使用的格式。 I think you did so already on the data-data-format attribute, so that is ok... Do not initialize the datepicker on demand but do so on document.ready. 我认为您已经在data-data-format属性上执行了此操作,所以没关系...不要按需初始化datepicker,而是对document.ready进行初始化。

Then whenever necessary, set the date of the picker by putting the date into the input, using .val(date.getDate() + (start.getMonth() + 1) + "-" + start.getFullYear()); 然后,在必要时,使用.val(date.getDate() + (start.getMonth() + 1) + "-" + start.getFullYear());将日期放入输入中,以设置选择器的日期.val(date.getDate() + (start.getMonth() + 1) + "-" + start.getFullYear()); . That is all there is to it; 这就是全部。 datepicker will handle the change itself when the user decides to click in the input. 当用户决定单击输入时,日期选择器将自行处理更改。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM