2011-10-26 1 views
0

Il ya beaucoup de solutions, y compris une jQuery un (http://plugins.jquery.com/plugin-tags/caps-lock) où vous vérifiez pour voir si la lettre tapée est en majuscule et si oui, a été la touche Maj enfoncée. Si ce n'est pas le cas, le verrouillage des majuscules est activé.Comment détecter le verrouillage des majuscules dans javascript sans comparer ce qui a été tapé avec si pressé?

Ce n'est pas ce que je veux. Allez simplement sur GMail.com et placez votre curseur dans le champ du mot de passe. Dès que vous appuyez sur le bouton de verrouillage, il est indiqué. Vous n'avez pas à taper une chose.

Voici ce que je cherche.

+3

Si vous utilisez un Mac, c'est une fonctionnalité du système d'exploitation, pas du site Web. –

+0

@MattBall: Oui, je suppose qu'il est sur un Mac - il ne le fait pas pour moi dans Chrome 14 sur Win 7. –

Répondre

2

Vous pouvez vérifier si la touche enfoncée est la touche majuscule en cas onkeydown:

element.onkeydown = function() { 
    var evt = arguments[0] || window.evt, 
     key = evt.which || evt.keyCode; 

    if (key == 20) { 
     alert("Caps lock pressed"); 
    } 
} 

Notez que ce ne sera pas utile si l'utilisateur avait déjà verr maj est activée lorsque la mise en mouvement à l'entrée (Je suis assez sûr que c'est indétectable), et c'est un cas d'utilisation plus viable pour montrer un avertissement IMO. Cependant, comme indiqué dans les commentaires, certains systèmes d'exploitation ou navigateurs afficheront nativement un avertissement si vous avez verrouillé les majuscules tout en mettant au point un champ de mot de passe. GMail n'est pas pour moi sur Win 7, donc je ne pense pas que ce soit quelque chose qu'ils ont écrit en JavaScript.

+0

Cela ne fonctionnera pas pour le verrouillage des majuscules sur toutes les plates-formes – aquraishi

Questions connexes