2013-02-27 71 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 =文本;函數測試()'有一個問題。你在你的函數中缺少一個右括號,你應該把這個事件作爲'test'的參數來從中得到字符代碼。您應該複製並粘貼現有的示例,讓它起作用,然後解構它。 – 2013-02-27 21:26:04

+1

我試圖給你的問題一個體面的標題。請記住,*不是*論壇,它是一個問答網站。 – 2013-02-27 21:27:23

+0

不知道你在什麼環境下工作,但得到諸如Firebug之類的東西,或者看着jsfiddle(http://jsfiddle.net/aq2Up/)可以幫助你學習JS以及建立迷你示例來提問。 – Mikeb 2013-02-27 21:31:55

回答

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!"); 
    } 
}); 

希望它非常簡單,但是它所做的是獲取ID爲「foo」的HTML元素,向「keydown」添加一個事件監聽器(它只是一個函數)事件,然後在偵聽器本身中,我們檢查剛剛在「foo」輸入中按下的鍵是否是charcode 65(「a」鍵)。

通常,您應該在Javascript中附加事件偵聽器,並且您應該使用addEventListener方法而不是設置on *屬性。

我強烈建議Mozilla開發人員網絡查找DOM API信息;這裏有這個例子中,相關網頁:

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!"); 
    } 
}