簡體   English   中英

我在 javascript 中使用 onkeyup function 並且如果我按下鍵然后我得到不同的 ASCII 值

[英]I am using onkeyup function in javascript and If I press key then I get different ASCII value

我在 javascript 中使用 onkeyup function 並且我認為event.which為我們提供了輸入字符的 ascii 值,但我得到了不同的輸入字符值。 我不知道為什么會這樣。 請告訴我。

 <input type="text" size="40" onkeyup="myFunction(event)"> <div id="demo"><div> <script> function myFunction(event) { var x = event.which; document.getElementById("demo").innerHTML = "The Unicode value is: " + x; } </script>

如果我輸入 1,那么它顯示 91。據我說,應該是 48,因為 1 的 ASCII 值是 48

.

如圖所示,我想說的是

which不是 Unicode 或 ASCII 字符代碼,它是鍵盤映射代碼。 which也已被棄用,並且不如(現在也已棄用) keyCode支持。

最接近您想要的東西(甚至現在已棄用!)是charCode 但這僅適用於keypress事件,不適用於keydownkeyup

這些天你現在應該使用的是key ——這是檢查按下了什么鍵的最新且不被棄用的方法。 key的值可能是一個鍵的名稱,例如“Enter”,但如果key是一個長度只有一個字符的字符串,那么key.charCodeAt(0)會給你一個字符代碼。

更新:我只是仔細檢查了一些我以前不確定的東西。 Shift 鍵的效果正確地反映在您為key獲得的值中。

你在輸入 1 時寫了 91

您的圖像顯示 44

你的想法是48

這是魔法 !!

只需將 onkeyup="myFunction(event)" 替換為 onkeypress="myFunction(event)"

你將永遠得到'49'

請參閱 HTML 中的 ASCII 值列表(數字 1 為 49) https://www.w3schools.com/charsets/ref_html_ascii.asp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM