简体   繁体   English

如何在textarea中使用keydown事件?

[英]How to use keydown event in textarea?

I am not very used to using javascript but I have gotten sick of manually repeating a tast at work. 我不是很习惯使用javascript但我已经厌倦了在工作中手动重复尝试。 When I write in a discussion forum I need a quick short command, like Ctrl-Alt-z, to insert some text into a textarea object. 当我在讨论论坛中写作时,我需要一个快速的短命令,如Ctrl-Alt-z,将一些文本插入到textarea对象中。

I have already written a function that inserts the text at the text cursor insertAtCursor(text). 我已经写了一个函数,在文本光标insertAtCursor(text)处插入文本。 The ID of the textarea is "content". textarea的ID是“content”。

I know how to solve the problem of checking for key combinations. 我知道如何解决检查组合键的问题。 The problem I have is basically to check for any keyboard input at all. 我的问题基本上是检查任何键盘输入。

I have tried the following: 我尝试过以下方法:

document.keydown(function(event){
  alert("Test");
});

However, it does not work. 但是,它不起作用。

Thanks in advance! 提前致谢!

I think you're going to have a tough time if you're looking for cross-browser solutions. 如果您正在寻找跨浏览器解决方案,我认为您将度过艰难时期。 Here's something to help you: http://www.quirksmode.org/dom/events/keys.html 这里有一些东西可以帮到你: http//www.quirksmode.org/dom/events/keys.html

Basically, you'd want something like this: 基本上,你想要这样的东西:

document.getElementById('content').addEventListener('keydown', function (e){
    // Do your key combination detection
}, false);

MDN on events. 关于事件的MDN。 Probably more helpful 可能更有帮助

var textarea = document.getElementById('textarea');

textarea.onkeydown = function ()
{
   alert("Test");
};

Using jQuery ( delegate ). 使用jQuery( 委托 )。

$("body").delegate("textarea", "keydown",function(e){
        alert("Test");
        //code logic goes here
        //if(e.which == 13){
        //Enter key down    
    }
});

Or 要么

$('textarea').live("keydown", function(e) {
    alert("Test");
    // e.which is which key, e.g. 13 == enter
});

Docs on live . 现场文件。 Docs on event . 关于活动的文件。

处理 ANY 的 keydown 事件<textarea>&lt;i&gt;on my page&lt;/div&gt;&lt;/i&gt;&lt;b&gt;在我的页面上&lt;/div&gt;&lt;/b&gt;</textarea><div id="text_translate"><p> 我正在尝试处理有人在我的页面上的任何&lt;textarea&gt;上按 ENTER 的情况。 并非所有&lt;textarea&gt;加载时都在页面上(它们可以通过用户事件动态添加),所以我不知道页面加载时的每个&lt;textarea&gt; id(因此不能使用 jQuery 来通过 id 监听每个事件)。 我也尝试使用 JS onkeydown事件,但我一直无法找到一种方法来检测哪个键导致onkeydown事件触发。</p><p> 那么,有没有办法处理我页面上的所有&lt;textarea&gt; keydown,以及导致事件的键,或者我似乎缺少一个优雅的解决方案? 一些全球性事件?</p></div> - Handle keydown event of ANY <textarea> on my page

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在按键事件中使用id-name? - How to use id-name on keydown event? 如何在组中使用按键事件? - How can I use a keydown event in a group? jQuery trigger()在textarea上具有keydown / up事件 - jQuery trigger() with keydown/up event on textarea 处理 ANY 的 keydown 事件<textarea>&lt;i&gt;on my page&lt;/div&gt;&lt;/i&gt;&lt;b&gt;在我的页面上&lt;/div&gt;&lt;/b&gt;</textarea><div id="text_translate"><p> 我正在尝试处理有人在我的页面上的任何&lt;textarea&gt;上按 ENTER 的情况。 并非所有&lt;textarea&gt;加载时都在页面上(它们可以通过用户事件动态添加),所以我不知道页面加载时的每个&lt;textarea&gt; id(因此不能使用 jQuery 来通过 id 监听每个事件)。 我也尝试使用 JS onkeydown事件,但我一直无法找到一种方法来检测哪个键导致onkeydown事件触发。</p><p> 那么,有没有办法处理我页面上的所有&lt;textarea&gt; keydown,以及导致事件的键,或者我似乎缺少一个优雅的解决方案? 一些全球性事件?</p></div> - Handle keydown event of ANY <textarea> on my page keydown事件:如何在没有更改事件的情况下使用preventdefault - keydown event : how use preventdefault without break fire of change event 如何触发按键事件? - How to trigger a keydown event? 使用Javascript onclick或keydown进行事件 - Use Javascript onclick or keydown for event 如何在Ext.Message.Box中使用keydown事件 - How to use keydown event in Ext.Message.Box 除退格键外,如何使用KeyDown事件? - How can I use the KeyDown event with the exception of backspace? 如何在 div 上使用“keydown”事件侦听器? - How can I use a 'keydown' event listener on a div?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM