2016-05-08 225 views
0

我正在研究有兩個引導器日期選擇器,一旦用戶在第一個日期選擇器上點擊任何日期,第二個日期選擇器的開始日期應該是選定的在第一個日期選擇器中,所有的日期都應該被禁用。但是當然我會遇到一些我找不到的錯誤方式。變量diffDays的值沒有反映在第二個日期選擇器的startDate字段中,因此開始日期沒有反映在第二個日期選擇器中。 在此先感謝。定義從第一個日期選擇器開始的第二個日期選擇器的開始日期

function checkDate(startDate) { 
    var oneDay = 24 * 60 * 60 * 1000; 
    var res = startDate.value.split("/"); 
    var firstDate = new Date(res[2], res[1] - 1, res[0]); 
    var todayFullDate = new Date(); 
    var diffDays = Math.round(Math.abs((firstDate.getTime() - todayFullDate 
      .getTime()) 
      /(oneDay))); 

    $('#date2').datepicker({ 

     startDate: '+'+diffDays+'d' 
       }); 

} 
$(function() { 

    $('#date1').datepicker({ 
     format : "dd/mm/yyyy", 
     required : true, 

    }); 

    $("#register-form").validate({ 

     rules : { 
      date1 : "required" 
     }, 

     messages : { 
      date1 : "Please enter a valid date" 
     }, 

     submitHandler : function(form) { 

      form.submit(); 
     } 
    }); 

}); 

回答

1

您可以使用簡單methodsoptions與他們的插件如下一起提供:

changeDatesetStartDatesetEndDate是你需要使用的三個重要的事情。

changeDateeventfired when the date is changed

setStartDatesetEndDate是2種方法它設置startdateenddate針對各個datepickers。您需要changeDate事件附加到兩個datepickers,並設置相應的datepickers相應的開始和結束日期如下

$('.start').datepicker({ 
    autoclose:true 
}).on('changeDate',function(e){ 
    //on change of date on start datepicker, set end datepicker's date 
    $('.end').datepicker('setStartDate',e.date) 
}); 

$('.end').datepicker({ 
    autoclose:true 
}).on('changeDate',function(e){ 
    //on change of date on end datepicker, set start datepicker's date 
    //e.date will have selected date value. 
    $('.start').datepicker('setEndDate',e.date) 
}) 

DEMO HERE

+1

大答案。萬謝謝! – ImBS

+0

隨時隨地..快樂編碼.. :) –

相關問題