2016-12-15 78 views
5

我有兩個名爲startdate和enddate的日期選擇器。我想要禁用除startdate所選日期以外的所有其他日期。例如,如果我從startdate datepicker中選擇了15/12/2016,那麼我想在enddate datepicker中禁用除第15天以外的所有其他日期。如何禁用jquery datepicker中所選日期以外的所有其他日期

Demofiddle:https://jsfiddle.net/d7vzxn8s/

這是我的代碼:

<p>Start Date: <input type="text" id="startdate"></p> 
<p>End Date: <input type="text" id="enddate"></p> 

<script> 
    $("#startdate").datepicker({ 
    onSelect: function (selected) { 
     var dt = new Date(selected); 
     dt.setDate(dt.getDate()); 
     $("#enddate").datepicker("option", "minDate", dt); 
     } 
    }); 
    $("#enddate").datepicker(); 

回答

5

改性小提琴:https://jsfiddle.net/d7vzxn8s/2/

var dateToday = new Date(); 
     var selectedDate; 
     $("#startdate").datepicker({ 
      minDate: dateToday, 
      onSelect: function (dateText, inst) { 
       selectedDate = $(this).datepicker("getDate"); 
       var slctdDate = selectedDate.getDate() 
       // alert(selectedDate); 
       $("#enddate").datepicker({ 
       minDate: inst.day, 
       beforeShowDay: function(date){ 
        //Only allow fri, sat 

         return [date.getDate()==slctdDate]; 

       } 
       }); 

      } 
     }); 

     $("#enddate").datepicker("option"); 
1

如果你想只有一個選項,在「enddate」選擇來接,這是oblivous說,「enddate」將等於「startdate」。

這就是爲什麼您可以簡單地從「startdate」中複製值到「enddate」選擇器並禁用「enddate」以完全更改。

0

您可以分兩步實現:

  1. 屬性添加到readonly#enddate,從而使內容不能被編輯或由用戶更改;
  2. 確保當更新#startdate的值時,#enddate的值也會更新。

這裏是jQuery的用於第2步:

$("#startdate").change(function(){ 
     $("#enddate").val($("#startdate").val()); 
    }); 

工作實施例:

$(document).ready(function(){ 
 

 
    $("#startdate").change(function(){ 
 
    $("#enddate").val($("#startdate").val()); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<p>Start Date: <input type="text" id="startdate"></p> 
 
<p>End Date: <input type="text" id="enddate" readonly></p>

+0

感謝您的回覆。 :)但這不會幫助我。我不能設置enddate只。我真正想要的是,考慮我是否選擇了16/12/2016,那麼應禁用所有以前的日期(這是當前的情況),並禁用除選定日期之後的第16天以外的所有日期。 這意味着我只需要選擇2016年12月的第16天,2017年1月,2017年2月,等等。 – Raj

相關問題