2014-02-26 11 views
0

所以我有這樣的代碼Jquery的日期選擇器不火,第二次

$('#apply').datepicker({ 
    changeMonth: true, changeYear: true, 
    dateFormat: "dd-mm-yy", 

    onClose: function(selectedDate){ 
     $('#last').prop('disabled', false); 
     $('#last').datepicker('destroy'); 
     var formatted = selectedDate.split('-'); 
     var new_date = formatted[1]+"/"+formatted[0]+"/"+formatted[2]; 
     $('#last').datepicker({ 
     dateFormat: "dd-mm-yy",   
     minDate: (function(){     
      var min = new Date(new_date); 
      min = $('#apply').datepicker('getDate'); 
      var newmin = new Date(new_date); 
      newmin.setDate(min.getDate()+121); 
      return newmin; 
     })(), 
     maxDate:(function(){ 
      var min = new Date(new_date); 
      min = $('#apply').datepicker('getDate'); 
      var newmin = new Date(new_date); 
      newmin.setDate(min.getDate()+129); 
      return newmin; 

     })(), 

     }); 


    } 

});

的問題是,我的日期#apply日期選擇器將不會觸發第二次左右,(點擊文本框的第一次,日期選擇器將顯示,點擊外面,然後再次單擊文本框的日期選擇器woukd不顯示)爲什麼?你可以幫我嗎?

這裏是一個JSFIDDLE DEMO幫助你理解我的問題

謝謝

+0

在提琴手它工作正常 – monu

+0

@monu第一個文本框?它不適合我。先點擊它,然後點擊它外面,然後再次點擊它 – user2705620

回答

1

此線導致錯誤,

min = $('#apply').datepicker('getDate'); 

更新 fiddle

,如果你不首先選擇的日期。 min將爲空。它會導致錯誤

newmin.setDate(min.getDate()+121); 
+0

你能向我解釋爲什麼這樣的行爲? – user2705620

+0

@ User6675636b20796f7521我編輯了我的答案 –

1

你需要有分鐘的空檢查,因爲如果你不選擇任何日期「GETDATE」返回null

onClose: function(selectedDate){ 
      $('#last').prop('disabled', false); 
      $('#last').datepicker('destroy'); 
      var formatted = selectedDate.split('-'); 
      var new_date = formatted[1]+"/"+formatted[0]+"/"+formatted[2]; 
      $('#last').datepicker({ 
      dateFormat: "dd-mm-yy",   
      minDate: (function(){     
       var min = new Date(new_date); 
       min = $('#apply').datepicker('getDate'); 
       var newmin = new Date(new_date); 
        if(min != null) 
       newmin.setDate(min.getDate()+121); 
       return newmin; 
      })(), 
      maxDate:(function(){ 
       var min = new Date(new_date); 
       min = $('#apply').datepicker('getDate'); 
       var newmin = new Date(new_date); 
       if(min != null) 
       newmin.setDate(min.getDate()+129); 
       return newmin; 

      })(), 

      }); 

http://jsfiddle.net/DHyPe/22/

相關問題