pickadate.js根据第一个输入设置焦点

时间:2016-11-01 00:44:31

标签: javascript jquery date pickadate

我正在使用pickadate.js来抵达&出发日期,并希望出发日期不允许在抵达日期或之前的任何日期,并将出发日期设置为在抵达日期之后的日期。因此,例如,2016年12月16日的到达将允许仅从12月17日起选择出发日期。这就是我所拥有的:

        <script src="pickadate/lib/jquery.js"></script>
        <script src="pickadate/lib/picker.js"></script>
        <script src="pickadate/lib/picker.date.js"></script>
        <script src="pickadate/lib/legacy.js"></script>
        <script type="text/javascript">
            $('#dateArrival').pickadate({
                min: true,
                max: new Date(2018,12,31),
                format: 'd mmm yyyy',   // Friendly format displayed to user
                formatSubmit: 'yyyy-mm-dd', // Actual format used by application
                hiddenName: true,           // Allows two different formats
                disable: [ // Dates already booked
                new Date(2016,11,13),
                new Date(2016,11,29)
                ]
            });

            $('#dateDepart').pickadate({
                min: true,
                max: new Date(2018,12,31),
                format: 'd mmm yyyy',
                formatSubmit: 'yyyy-mm-dd',
                hiddenName: true,
                disable: [
                new Date(2016,11,13),
                new Date(2016,11,29)
                ]
            });
        </script>

1 个答案:

答案 0 :(得分:2)

var frompic = $('#input_from').pickadate();
var topic   = $('#input_to').pickadate();

初始化后,检索选择器对象

fromIns = frompic.pickadate('picker');
toIns   = topic.pickadate('picker');

添加set事件处理程序

fromIns.on('set', function(event) {
  if ( event.select ) {
    sel =  fromIns.get('select'); //get entered date
    newDte = new Date( sel.year,sel.month,sel.date ) ;
    newDte.setDate(newDte.getDate()+1); // inc date by 1
    toIns.set('min', new Date( newDte.getFullYear(),newDte.getMonth(),newDte.getDate()));
 }
});