为了账号安全,请及时绑定邮箱和手机立即绑定

键码和字符码

键码和字符码

DIEA 2019-12-17 14:45:49
人们为什么写这样的陈述e.keyCode ? e.keyCode : e.charCode有些人也用 e.which有人可以解释一下吗?
查看完整描述

3 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

始终如一地处理关键事件并非易事。


首先,有两种不同类型的代码:键盘代码(代表用户按下的键盘上的键的数字)和字符代码(代表Unicode字符的数字)。您只能在keypress事件中可靠地获取字符代码。不要尝试获取keyup和keydown事件的字符代码。


其次,您在keypress事件中获得的值集与在keyup或keydown事件中获得的值不同。


我建议将此页面作为有用的资源。作为总结:


如果您有兴趣检测用户键入字符,请使用该keypress事件。IE奇怪地仅将字符代码存储在中,keyCode而所有其他浏览器将字符代码存储在中which。一些(但不是全部)浏览器也将其存储在charCode和/或中keyCode。一个示例按键处理程序:


function(evt) {

  evt = evt || window.event;

  var charCode = evt.which || evt.keyCode;

  var charStr = String.fromCharCode(charCode);

  alert(charStr);

}

如果您有兴趣检测不可打印的键(例如光标键),请使用该keydown事件。这keyCode始终是要使用的属性。请注意,keyup事件具有相同的属性。


function(evt) {

  evt = evt || window.event;

  var keyCode = evt.keyCode;


  // Check for left arrow key

  if (keyCode == 37) {

    alert("Left arrow");

  }

}


查看完整回答
反对 回复 2019-12-17
?
慕村9548890

TA贡献1884条经验 获得超4个赞

这是一个条件语句。


如果浏览器支持e.keyCode,则采用e.keyCode,否则为e.charCode。


它类似于


var code = event.keyCode || event.charCode

event.keyCode:返回按键事件中的非字符键或任何其他类型的键盘事件中的任何键的Unicode值。


event.charCode:返回在按键事件期间按下的字符键的Unicode值。


查看完整回答
反对 回复 2019-12-17
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

好的,这里是解释。


e.keyCode-用于获取代表键盘上键的数字


e.charCode-一个数字,代表键盘上按键的unicode字符


e.which-(特定于jQuery)是jQuery中引入的属性(请勿在纯JavaScript中使用)


以下是获取keyCode和charCode的代码段


<script>

// get key code

function getKey(event) {

  event = event || window.event;

  var keyCode = event.which || event.keyCode;

  alert(keyCode);

}


// get char code

function getChar(event) {

  event = event || window.event;

  var keyCode = event.which || event.keyCode;

  var typedChar = String.fromCharCode(keyCode);

  alert(typedChar);

}

</script>

在JavaScript中获取keyCode和charCode的实时示例。


查看完整回答
反对 回复 2019-12-17
  • 3 回答
  • 0 关注
  • 586 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信