当前位置: 首页 > 知识库问答 >
问题:

Javascript按键事件和e.keycode

夏晋
2023-03-14

>

  • 我有一个代码,当用户在文本输入中键入时,该代码将更新剩余的字符数。使用按键事件触发该代码。问题是只有在按下2键后才会触发代码。为什么会这样?

    我有一个代码来显示ASCII码的键,但是当我按下backspace键时,字符总是显示为8。以及如何使用字符串。fromCharCode(event.keycode};方法

    为什么将事件参数添加到函数e.keycode如何知道它正在显示用户输入的keycode

    代码示例

    超文本标记语言

    <div id="page">
      <h1>List King</h1>
      <form id="messageForm">
        <h2>My profile</h2>
        <textarea id="message"></textarea>
        <div id="charactersLeft">180 characters</div>
        <div id="lastKey"></div>
      </form>
    </div>
    

    JavaScript

    var el;                                                    // Declare variables
    
    function charCount(e) {                                    // Declare function
      var textEntered, charDisplay, counter, lastkey;          // Declare variables
      textEntered = document.getElementById('message').value;  // User's text
      charDisplay = document.getElementById('charactersLeft'); // Counter element
      counter = (180 - (textEntered.length));                  // Num of chars left
      charDisplay.textContent = counter;                       // Show chars left
    
      lastkey = document.getElementById('lastKey');            // Get last key used
      lastkey.textContent = 'Last key in ASCII code: ' + e.keyCode; // Create msg 
    }
    
    el = document.getElementById('message');                   // Get msg element
    el.addEventListener('keypress', charCount, false);         // keypress -call charCount()
    

  • 共有2个答案

    汤嘉平
    2023-03-14

    1)使用'keyup'代替'keypress'。

    2)lastkey.textContent='ASCII代码中的最后一个键:'String.fromCharCode(e.key代码);

    3) 我对它了解不多。添加事件参数以捕获激发的事件。它具有激发事件的所有属性,例如对于“keyup”,它具有“charcode”、“keycode”、“key”等。

    侯善
    2023-03-14
    • 在输入值更新之前触发keypress事件,这就是为什么计数器不是最新的。如果不需要keyCode,我建议监听输入事件。您还可以收听keyup(但更新不会直接进行)或keypresskeyup的组合(来自如何在onKeyPress期间获取输入文本框的文本?,我更新了右答案是小提琴)。
      • 实际上,当您按下退格键时,keypress事件似乎没有被触发。也就是说,忽略静音键(退格、移位、命令等)的另一个解决方案是监听输入事件(但您无权访问event.keyCode)。否则,当keyCode不相关时,您也可以忽略您的代码。
      • 对于String.fromCharCode,只需使用String.fromCharCode(event.keyCode)来获得keyCode的"人类"等价物。

     类似资料:
    • 嗨,在用pygame开发游戏时,有一个问题其实并不重要,但它一直困扰着我一段时间。 所以上面是一个工作代码,我相信 同样有效。 然而,当我只是尝试类似“event.key==pyplay。K_RIGHT:",python给我一个错误,说没有属性'key'。虽然我知道选择以上2个代码会更合理,而不仅仅是“event.key==pyplay。K_RIGHT:",我不知道为什么pyplay会说事件没有属

    • 问题内容: 我有一个带有两个文本框,一个 选择 下拉菜单和一个 单选按钮 。当按下该键时,我想调用一个Javascript函数(用户定义),但是当我按下它时,将提交表单。 按下键时如何防止提交 ? 问题答案: if(characterCode == 13) { return false; // returning false will prevent the event from bubbling

    • 我正在使用Microsoft Visual C#2010 Express编写一个窗口窗体应用程序。我在写一个数独程序。我以前写过一次这个程序,并让它工作。由于硬盘故障,我丢失了源代码。我在表格上画了一个网格。我让鼠标事件工作了。我有重要的新闻活动要办。然后我在表单中添加了几个按钮,并让它们工作。但随后出现了一个问题。在我添加按钮并使其工作后,按键事件停止工作。为什么按钮事件和按键事件之间会发生冲突

    • 本文向大家介绍js捕捉键盘事件和按键键值的方法,包括了js捕捉键盘事件和按键键值的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: js键盘键值 以上就是小编为大家带来的js捕捉键盘事件和按键键值的方法全部内容了,希望大家多多支持呐喊教程~

    • 问题内容: 我想知道redis中是否有一个功能可以让我获取所有过期的密钥(我的意思是某种事件,这使我有机会取回所有过期的记录)。其目的是将旧值保存到另一个数据库中。我听说有可能使用发布机制,但是google不能帮助我们实现这一想法。 问题答案: Redis的当前开发版本包含一个新功能:键空间通知。文档:http : //redis.io/topics/notifications 密钥空间通知允许客

    • 仅限GXT 3. x。 我越来越清楚,Sencha故意设计了FileUploadField,以避免所有按键事件被检测到。 我试图拦截onBrowserEvent(事件),但无法检测到我在专注于FileUploadField组件时通过按键生成的任何按键事件。 按键事件分流器在哪里? 我找不到任何按键处理程序插入方法。 我希望通过按空格键或回车键来触发文件上传。 除了从头开始重写一个全新的组件,有人能