[英]Javascript onkeypress event fires but input text value is incorrect
[英]javascript onkeypress input text
我正在學習Javascript。僅當我的腳本標簽位於輸入文本元素下方時,下面的代碼才起作用,但是如果我將代碼置於輸入文本標簽上方,則它無法工作。 我可以知道為什么嗎? 下面是代碼:
<head>
</head>
<body>
<input type="text" id="name" >
<script type="text/javascript">
var txtId = document.getElementById('name');
txtId.addEventListener('keypress', function(e){
console.log('Pressed!')
})
</script>
</body>
下面的代碼與上面的代碼相同,只不過我使用的是函數,在其中我使用的代碼與上面的代碼相同。 但是在這種情況下,我的腳本標簽位於輸入文本標簽之上,並且它可以工作。 在這種情況下如何運作? 下面是代碼:
<head>
<script type="text/javascript">
function keyPressListener(){
var txtId = document.getElementById('name');
txtId.addEventListener('keypress', function(e){
console.log('Pressed!')
})
}
</script>
</head>
<body>
<input type="text" id="name" onkeypress="keyPressListener()">
</body>
那么,以上2個代碼之間到底有什么區別?
使用onkeypress
屬性時。 實際上,它的工作方式與addEventListener
相同。 您只需要編寫一個簡單的函數並在onkeypress
調用它
<input type="text" id="name" onkeypress="keyPressed()">
<script>
function keyPressed(){
console.log('Key Pressed');
}
</script>
為什么不能將其放置在輸入上方 -因為文檔尚未准備好,所以您需要body.onload
事件。請參見body onload=start()
,它將在加載body之后應用js函數
<body onload="start()"> <input type="text" id="name"> <script type="text/javascript"> function start() { var txtId = document.getElementById('name'); txtId.addEventListener('keypress', function(e) { console.log('Pressed!') }) } </script> </body>
第二個 -您在單個事件中使用兩個函數。 因此,與任何一項事件一起使用
如果與內聯按鍵使用
keyPressListener()
其他使用按鍵的DOM事件(addEventListener)
*注意:
keyPressListener()
包含addEventListener()
keyPressListener()
。 addEventListener()
一起使用,請刪除標記內聯的onkeypress
事件。 <head> <script type="text/javascript"> function keyPressListener() { console.log('Pressed!') } </script> </head> <body> <input type="text" id="name" onkeypress="keyPressListener()"> </body>
不推薦使用addEventListener
在您的輸入上嘗試以下操作:
添加;
在keyPressListener()之后:
<input type="text" id="name" onkeypress="keyPressListener();">
如果這樣不起作用,請嘗試以下操作:
<input type="text" id="name" onkeypress="keyPressListener(); return true;">
HTML5知道,當您使用onkeypress
屬性when the key is pressed
需要調用JavaScript函數。 您基本上可以將任何功能性JavaScript放在onkeypress="
(JavaScript在此處) "
屬性的參數中。
您也可以從DOM中獲取元素,然后將事件偵聽器添加到元素中,如下所示:
jQuery: $('#name').onkeypress( function() { //code goes here } );
常規Js: document.getElementById('name').onkeypress( function() { //code goes here } );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.