La tecla shift la utilizamos normalmente para poner teclas en mayúscula. Si bien, existen otros usos como el de hacer múltiples selecciones de elementos. En estos casos mantenemos dicha tecla pulsada mientras elegimos los elementos.
Hay que pensar que no siempre vamos a enfrentarnos a un formulario con una selección múltiple donde el propio navegador gestiona si está la tecla shift pulsada. Pueden presentarsenos situaciones donde queramos proporcionar la selección de múltiples elementos (por ejemplo, imágenes, capas,…) y tengamos que codificarnos, nosotros mismos, el control de la selección múltiple.
Para ello podemos apoyarnos en JavaScript y detectar si está la tecla shift pulsada y actuar en consecuencia.
Lo primero que tenemos que hacer es elegir sobre que evento vamos a realizar el control. En nuestro caso lo vamos a realizar cuando se produzca un click del ratón. Esto es el evento onmousedown.
La función que se lanzará será estaPulsadoShift, la cual esta recibiendo el objeto event como parámetro. Este objeto tiene toda la información relativa al evento que se ha producido, es decir, al click del ratón.
La propiedad, del objeto event, que tiene la información relativa a si la tecla shift estaba pulsada o no, es shiftKey. Si su valor es igual a 1, entonces significará que la tecla Shift estaba pulsada.
Si codificamos esto en JavaScript, nos quedaría el siguiente código:
function estaPulsadoShift(event){
if (event.shiftKey==1)
alert("La tecla shift está presionada");
else
alert("La tecla shift no está presionada");
}
Poco código y de mucha utilidad.