2012-03-21 47 views
1

我想知道如何獲取文本區域或輸入字段的DOM節點?我正在使用JavaScript文件來處理鍵盤快捷方式,並且我發現我們可以給出快捷方式的目標,在哪裏使用該快捷方式,默認是文檔,我已經下載了該JavaScript並寫入了這些樣本,文本區域的DOM名稱

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title></title> 
<script type="text/javascript" src="shortcut.js"></script> 
<script type="text/javascript"> 
shortcut.add("a",function() { 
    alert("The bookmarks of your browser will show up after this alert..."); 
},{ 
    'type':'keydown', 
    'disable_in_input':false, 
    'propagate':false, 
    'target':document.form1.namea 
});</script> 

</head> 

<body> 
<form name="form1" id="form1"><textarea name="namea" id="namea"></textarea></form> 
</body> 
</html> 

我從here得到這個腳本現在我需要當我把目標文件,並按下鍵「a」在我的鍵盤,它顯示我一個警報,但如果我把document.form1.namea這樣,那麼它不告訴我任何警報,請幫我解決這個問題。我也試圖把document.getElementById("namea"),但沒有任何幫助,在教程它說,在此選項中,我們必須給它
目標 - DOM節點
應該守候着鍵盤事件的元素。默認:文檔

我試圖谷歌關於我的textarea的DOM節點,但沒有任何幫助,請幫助我,我想提交此表格時,當用戶按下鍵「a」或我可以修改它輸入密鑰以及。

回答

0

document.getElementById("namea")將工作...但是,直到節點存在。

在解析<input>元素之前,您正在運行腳本(沒有延遲(例如onload))。

可以將其設置爲稍後調用的函數,也可以移動<script>以使其顯示在<input>之後(例如,在</body>標記之前)。

+0

OMG,你爲什麼不我想起了這個小東西,謝謝你提醒我非常感謝現在,它正在改變警報什麼再次感謝,並再次感謝很多 – 2012-03-21 17:25:09

0

請仔細閱讀你已經採取了形式的文檔了一句:

目標 - DOM節點應該守候着鍵盤 事件的元素。默認:文檔

如果您將目標設置爲差異元素,則只有在該元素上時,shorcut纔會生效。所以,你要做的就是離開目標爲是(文件),並通過

document.form1.submit() 
+0

對不起,我沒有真正的意思,我的意思是,快捷方式應該只有當用戶專注於該文本區域,如果它不集中,然後打一個不應該做任何事情,但謝謝,我知道,我只想提交表單,如果用戶已經集中在textarea並按下鍵「a」 – 2012-03-21 17:23:10