2017-03-02 357 views
1

我有一个正常的来自jquery的datepicker。它工作正常,但“onSelect”不会触发。有没有人有一个想法,为什么这不起作用?另外“onClose”不起作用。jquery datepicker onSelect不会触发

我的javascript:

var startDatepickerSettings = { 
     format: 'dd.mm.yyyy', 
     todayHighlight: true, 
     weekStart: 1, 
     onSelect: function (date) { 
      console.log(date); 
     }, 
     onClose: function() { 
      console.log("Closed"); 
     } 
    }; 

$('.startDate-selection').datepicker(startDatepickerSettings); 

而我的HTML

<input id="product_0_startDate" class="form-control startDate-selection form-control" type="text" readonly="readOnly" required="required" name="product[0][startDate]"> 
+0

有没有可用的标记? – KAD

+1

我认为你在混合使用2种不同的日期选择器。引导日期选择器和jquery ui datepicker ..“todayHighlight”来自bootstrap选择器,“onSelect/onClose”来自UI选择器。尝试“show/hide”如果使用引导。 – Rick

+0

哦,我认为你是对的@瑞克!谢谢!! – Zwen2012

回答

1

如果使用jQuery UI的日期选择器,然后使用它的方法。

这里是你的工作代码。

<input id="product_0_startDate" class="form-control startDate-selection form-control" type="text" readonly="readOnly" required="required" name="product[0][startDate]"> 

    $(document).ready(function() { 



     $(".startDate-selection").datepicker({ 
      dateFormat: "dd-M-yy", 
      minDate: 0, 
      onSelect: function (date) { 
       var minDate = $(this).datepicker('getDate'); 
       $(this).datepicker('option', 'minDate', minDate); 
       alert("Right"); 
      } 
     }); 

    }); 

你也可以不喜欢它:

$(document).ready(function() { 

    var settings = { 
     dateFormat: "dd-M-yy", 
     minDate: 0, 
     onSelect: function (date) { 
      var minDate = $(this).datepicker('getDate'); 
      $(this).datepicker('option', 'minDate', minDate); 
      alert("Right"); 
     } 
    } 

    $(".startDate-selection").datepicker(settings); 

}); 

工作JS Fiddle

0

如果你正在使用jQuery的日期选择或日期范围选择器,然后尝试下面的代码。

var today = new Date(); 
    var journeyStartDate = null; 
    var journeyEndDate = null; 

    jQuery('.fa-calendar').daterangepicker({ 
     autoUpdateInput: false, 
     autoApply: false, 
     minDate: today, 
     startDate: jQuery('input[name="startDate"]').value, 
     endDate: jQuery('input[name="endDate"]').value, 
     showDropdowns: true, 
     opens: 'left', 
     linkedCalendars: false, 
     locale: { 
      cancelLabel: 'Clear' 
     } 
    }); 

    jQuery('.fa-calendar').on('apply.daterangepicker', (ev: Event, picker: any) => { 
     journeyStartDate = picker.startDate.format('DD/MM/YYYY'); 
     journeyEndDate = picker.endDate.format('DD/MM/YYYY'); 
    }); 

    jQuery('.fa-calendar').on('cancel.daterangepicker', (ev: Event, picker: any) => { 
     journeyStartDate = null; 
     journeyEndDate = null; 
    }); 
相关问题