ajax调用中的日期选择器第二次不起作用

问题描述

我最近有一个问题:当我第一次单击选择位置时选择。(例如 location_1)它会返回可供选择的日期。(例如 17/03/2021)但是当我更改位置时。(例如 location_2) 日期选择器不工作。它仍然给我我可以选择的第一个结果日期。(仍然是 17/03/2021,但应该是 20/03/2021)。 任何人有任何想法? 非常感谢!

我的 HTML:

  <div class="vax_user_not_schedule">
  <div class="vax_location_select">
    <label for="">Location Select(name,street,state)</label>
    <div class="mb-3">
      <%= select("location","id",VaxLocation.all.collect {|l|
        if l.name=="Other"
          [l.name,l.id]
        else
        [ l.name+","+l.street+","+l.state,l.id ]
        end
      },{ include_blank: true }) %>
    </div>
  </div>

  <!--<input id="exampleDate" class="datepicker" name="date" type="text" value="14 August,2014" data-value="2014-08-08" />-->
<div id="date-picker">
  <input class="datepicker" id="exampleDate">
</div>

我的 Js

$('#location_id').on("change",function (){
        console.log($('#location_id').val());
        $.ajax({
            url: "/myvax_vaccince_schedule/covid19/query_location_spot",method: "GET",dataType: "json",data: {location_id: $('#location_id').val()},error: function (xhr,status,error) {
                console.error('AJAX Error: ' + status + error);
            },success: function (response) {
                var vax_spots_location = response["vax_location_spots"];
                var date_has_spots=[];
                for(var i=0; i< vax_spots_location.length; i++){
                    if (date_has_spots.includes(vax_spots_location[i]["start_at"].substring(0,10))==false)
                        date_has_spots.push(vax_spots_location[i]["start_at"].substring(0,10).toString());
                }
                console.log(date_has_spots);
                var today_date = new Date();
                today_date.setDate(today_date.getDate()-1);
                console.log(today_date);
                $('#exampleDate').datepicker('destroy').datepicker({
                    startDate: today_date,format: 'yyyy-mm-dd',beforeShowDay: function(date){
                        dmy = date.getFullYear() + "-" + ("0" + (date.getMonth() + 1)).slice(-2) + "-" + date.getDate() ;
                        console.log(date_has_spots.includes(dmy))
                        // console.log(dmy)
                        if(date_has_spots.includes(dmy)){
                            return true;
                        }
                        else{
                            return false;
                        }
                    }
                });
            }
        });
    })

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)