Как определить состояние CAPS LOCK в поле пароля

Возможный дубликат:
Как вы узнаете, работает ли кепка с помощью JavaScript?

В веб-форме есть ли способ узнать, включена ли блокировка колпачков?

Я предполагаю, что могу проверить чек onChange, чтобы увидеть, все ли символы в верхнем регистре. Но есть ли более прямой способ сделать это?

В частности, я ищу, чтобы ввести сообщение "YOUR CAPS LOCK IS ON", когда они входят в поле пароля, подобно тому, как это делает экран входа в Windows.

Ответ 1

Вы можете найти достойный пример того, как это сделать здесь: http://www.codeproject.com/KB/scripting/Detect_Caps_Lock.aspx

Вы можете взять этот код и перенести его в другое событие, например, на фокус или на загрузку документа.

Вы можете google для индекса ключевых кодов (я бы опубликовал ссылку, но у меня нет достаточно высокой кармы, чтобы отправить более одной ссылки, извините).

Для простоты коды, которые вы ищете, - 20 (блокировка Caps).


Инструкции, скопированные здесь с сайта (лицензия: CPOL)

Построение script

<script language="Javascript">
function capLock(e){
 kc = e.keyCode?e.keyCode:e.which;
 sk = e.shiftKey?e.shiftKey:((kc == 16)?true:false);
 if(((kc >= 65 && kc <= 90) && !sk)||((kc >= 97 && kc <= 122) && sk))
  document.getElementById('divMayus').style.visibility = 'visible';
 else
  document.getElementById('divMayus').style.visibility = 'hidden';
}
</script>

Теперь у нас есть наш script готовый к работе. Теперь нам нужно связать этот script с нашей формой.

Используя script

Добавьте два элемента: текстовое поле и DIV. Теперь нам просто нужно вызвать событие onKeyPress.

<input type="password" name="txtPassword" onkeypress="capLock(event)" />
<div id="divMayus" style="visibility:hidden">Caps Lock is on.</div>