te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - How to use keydown event in textarea? - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to use keydown event in textarea? - Stack Overflow

programmeradmin3浏览0评论

I am not very used to using javascript but I have gotten sick of manually repeating a tast at work. When I write in a discussion forum I need a quick short mand, like Ctrl-Alt-z, to insert some text into a textarea object.

I have already written a function that inserts the text at the text cursor insertAtCursor(text). The ID of the textarea is "content".

I know how to solve the problem of checking for key binations. 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 am not very used to using javascript but I have gotten sick of manually repeating a tast at work. When I write in a discussion forum I need a quick short mand, like Ctrl-Alt-z, to insert some text into a textarea object.

I have already written a function that inserts the text at the text cursor insertAtCursor(text). The ID of the textarea is "content".

I know how to solve the problem of checking for key binations. 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!

Share Improve this question asked Jul 16, 2012 at 19:33 DoubleTroubleDoubleTrouble 9022 gold badges8 silver badges21 bronze badges 2
  • attach a keydown event to the actual textarea. You're attaching it to the whole page. – Marc B Commented Jul 16, 2012 at 19:36
  • Both answers below are good, so no need for an almost identical third one, just your code can be modified for example also to document.onkeydown = function(event){alert("Test" + event.target);}; to be functional. But undoubtedly better to attach an event handler directly to textarea. – Stano Commented Jul 16, 2012 at 19:52
Add a ment  | 

3 Answers 3

Reset to default 6

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/dom/events/keys.html

Basically, you'd want something like this:

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

MDN on events. Probably more helpful

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

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

Using jQuery (delegate).

$("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.

document.querySelector('textarea') // find a DOM element (by tag name at this case)
  .addEventListener('keydown', // bind an event listener for "keydown" event
    e => { // declare a callback function when that event happens
      console.log(e.target.value) // print the target node value (<Textarea>)
    })
<textarea></textarea>

发布评论

评论列表(0)

  1. 暂无评论