2013-02-27 4 views
0

Ничего, что я нашел или не попытался до сих пор, не помогло и не произвело что-либо, что сработало правильно.Невозможно предупредить значение из события onkeydown

Вот пример одного мой мой десятки неудачных попыток:

<html> 
<head> 
<title>Keyboard Test</title> 
<script type="text/javascript"> 
onkeydown=text 
function test() { 
var key=String.fromCharCode; 
if (key=="a") 
alert("Hello!"); 
} 
</script> 
</head> 
</html> 

Может кто-то пожалуйста, покажите мне, как пытаться это правильно и почему это работает?

+4

'OnKeyDown = текст; function test() 'Есть одна проблема. Вам не хватает закрывающей фигурной скобки для вашей функции, и вы должны принять событие в качестве аргумента для 'test', чтобы получить код символа. Вы должны скопировать и вставить существующий пример, заставить его работать, а затем деконструировать его. –

+1

Я попытался дать вашему вопросу достойный титул. Помните, что это * не форум, это сайт Q & A. –

+0

Не уверен, в какой среде вы работаете, но получение таких вещей, как Firebug, или просмотр jsfiddle (http://jsfiddle.net/aq2Up/) может помочь вам изучить JS, а также построить мини-примеры, чтобы задавать вопросы. – Mikeb

ответ

0

"onkeydown = text" - это опечатка? Вы имеете в виду «onkeydown = test»?

0

Вот пример, который делает в основном то, что вы пытаетесь сделать, но совсем по-другому: http://jsbin.com/usonoh/1/edit

HTML:

<input id="foo"> 

Javascript:

document.getElementById("foo").addEventListener("keydown", function (ev) { 
    if (ev.which === 'A'.charCodeAt(0)) { 
    alert("A!"); 
    } 
}); 

Надеемся это довольно просто, но то, что он делает, это получить HTML-элемент с идентификатором «foo», добавив прослушиватель событий (который является только функцией, которую вы проходите) к «keydown», событие, а затем в самом слушателе мы проверяем, был ли ключ, который был просто нажат на входе «foo», - это код 65 (клавиша «a»).

В общем, вы должны присоединить слушателей событий в Javascript, и вы должны использовать метод addEventListener, а не устанавливать свойства on *.

Я настоятельно рекомендую Mozilla Developer Network для поиска информации API DOM; здесь соответствующие страницы для этого примера:

https://developer.mozilla.org/en-US/docs/DOM/document.getElementById https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener

0

Попробуйте как this

document.onkeydown = function test(ev) { 
    var key = String.fromCharCode(ev.keyCode); 
    if (key === "A") { 
     alert("Hello!"); 
    } 
} 
Смежные вопросы