2013-10-15 5 views
0

Я создал текстовое поле, используя <input> tag.If вы вводите любой символ в текстовое поле. Я хочу напечатать этот символ в консоли.Как найти, какая клавиша была нажата

Я искал в google, все предлагали jQuery.Я изучаю Javascript, поэтому, не заканчивая курс Javascipt, я не хочу переключать jQuery.

+0

почему вы не хотите использовать JQuery? является мощным инструментом в javascript –

+0

Хотя jQuery - это библиотека Javascript, на самом деле проще и во многом лучше изучить jQuery, а не беспокоиться о чистом Javascript. Основной причиной существования jQuery является то, что Javascript несовместим в разных браузерах, а jQuery делает его согласованным между браузерами. Кроме того, jQuery упрощает и упрощает выполнение многих задач, чем в чистом Javascript. –

+0

Посмотрите на функцию JavaScript '' onkeypress' (https://developer.mozilla.org/en-US/docs/Web/API/Window.onkeypress). – andyb

ответ

0

Это просто реализация, которая не требует каких-либо JQuery вообще. Вам просто нужно вызвать следующую функцию на KeyUp

function printKey(evt) { 
    var keyCode = evt.keyCode || evt.which; 
    console.log(keyCode); 
} 

Вы можете увидеть его в действии здесь http://jsbin.com/ikeVAbA/2/edit?html,js,output

+0

это неправильно, попробуйте в IE, он всегда возвращает 65 для 'a/A' – Amit

+0

Это не совсем неправильно , но способ JavaScript интерпретировать вещи. Для JavaScript A/a имеют тот же самый ход ключа 65. Он дополнительно захватывает Shift (16) или CapsLock (20). Поэтому, если вам нужно показать строчную или строчную букву, проверьте коды клавиш этих двух клавиш. – Bikas

5
function myKeyPress(e){ 

      var keynum; 

      if(window.event){ // IE     
       keynum = e.keyCode; 
      }else 
       if(e.which){ // Netscape/Firefox/Opera     
        keynum = e.which; 
       } 
      alert(String.fromCharCode(keynum)); 
     } 

и ваш вклад

<input type="text" onkeypress="return myKeyPress(event)" /> 

Вы можете найти список ключевого кода here. При том, что вы можете определить, какая клавиша нажата

+0

http://jsfiddle.net/marsone/PAMMR/Check console – MarsOne

+0

@ Dilantha вы передали 'event' как аргумент' myKeyPress() '. что такое событие. Если вы знаете какие-либо учебники об этом, вы можете предоставить мне. Также подтвердите, что ваша функция не будет работать в 'Google chrome'. – user2873816

+0

Мы передаем событие Dom как параметр myKeyPress. Подробнее о событиях Dom в javascript http://www.pradosoft.com/demos/quickstart/?page=Advanced.Scripts2 – Dilantha

0

Попробуйте

<input type="text" onkeypress="return getCode(e)" /> 

function getCode(evt){ 
var cc = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode); 
alert(String.fromCharCode(cc)); 
} 
Смежные вопросы