Двусторонняя функция выбора даты начальной загрузки

#javascript #jscript #bootstrap-datepicker #bootstrap-daterangepicker

Вопрос:

У меня есть загрузочный индикатор даты, который я хотел создать диапазон дат только в одном объекте и запускается нажатием клавиши shift, и когда пользователь нажмет клавишу ctrl, функция переключится на несколько дат, возможно ли это? Извините, я просто новичок в Javascript. Любая помощь была бы очень признательна. Большое вам спасибо!

Вот что у меня есть на данный момент.

 <div class="col-xs-12">
<input class="form-control" type="text" id="multi"  name="multi" required>
<div class="help-block with-errors"></div>
</div>

<script>
    $('#multi').datepicker({
        multidate: true,
        format: 'mm-dd-yyyy',
        forceParse: false

    }).on('hide', function (e) {
        e.stopPropagation();
    })
</script>

$("#multi").on('keydown', function (event) {
if (event.shiftKey === true) {
    isShift = true;
      //alert(isShift);
      console.log(isShift);
  //  isCtrl = false;
} else if (event.ctrlKey === true) {
    //alert('ey ctrl press');
    isCtrl = true;
    console.log(isCtrl);
    //isShift = false;
} else {
   
    return false
}
});
 

Ответ №1:

Позвольте мне понять.. Вы хотите обнаружить нажатие клавиши shift и ctrl вместе?

Когда вы нажимаете клавишу «shift», условие, проверяющее «ctrl», не вызывается, потому что вы используете другое if.

Попробуй:

 $("#multi").on('keydown', function (event) {

if (event.shiftKey === true) {
   isShift = true;
} else {
   isShift = false;
}

if (event.ctrlKey === true) {
    isCtrl = true;
} else {
    isCtrl = false;
}

if(isCtrl amp;amp; isShift) {

// do something

} else {
    return false;
}

});
 

Комментарии:

1. Да, когда клавиша shift нажата, я хочу получить диапазон дат. Пример Я нажал 1 января, и 3 января все промежуточные даты будут выделены/выбраны. Затем, когда выбрана клавиша ctrl, я хочу получить/выбрать, по которому щелкнул пользователь multidates. Вы можете направить меня в этом направлении? Прости, что я всего лишь новичок.