在.cshtml网页中使用javascript开发一个网络应用程序,我正在使用一个函数来检查用户输入,以确保它在输入文本框之前的数字或句点/小数点。
原始代码(在这里找到!:):
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode != 46 && (charCode < 48 || charCode > 57))) {
return false;
}
return true;
}
我添加了alert(charCode);在if之前,弹出的是190. ASCII 190是YEN符号。
我编辑了代码以接受ASCII 190,我的句号/小数点现在出现了。
我是编程/网络开发的新手。为什么我遇到了我的问题?有修复吗?
-TC
答案 0 :(得分:2)
可视化和键码的字符之间存在差异。
大多数密钥代码都映射到您从ASCII表中知道的char值。
但是例如点在键盘上有多个位置。 小键盘上的点与文本空间中的点的值不同。
这对我来说非常有帮助,可以在过去https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode了解这一点。
答案 1 :(得分:0)
一旦我得知密钥和ASCII不一样,我发现:Keycode是键盘位置,ASCII是字节表表示。但它甚至更深。的onkeydown =&#34; isNumberKey()&#34;返回键码,onKeyPress =&#34; isNumberKey()&#34;返回ASCII,..至少在Chrome和IE中包含win和win包含的Edge。