Tengo un selector de fechas de arranque. Quería crear un rango de fechas en un solo objeto y lo activé presionando la tecla shift y cuando el usuario hizo clic en la tecla ctrl, la función cambiará a múltiples fechas, ¿es eso posible? Lo siento, solo soy un novato en Javascript. Cualquier ayuda sería muy apreciada. ¡Muchas gracias!
Esto es lo que tengo hasta ahora.
<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 } });Déjame entender... ¿Quieres detectar shift y presionar ctrl, juntos?
Cuando presiona la tecla "shift", la condición que verifica "ctrl" no se ha llamado, porque está usando else if.
Probar:
$("#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 && isShift) { // do something } else { return false; } });