首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在form元素上用jQuery模拟按键

在form元素上用jQuery模拟按键
EN

Stack Overflow用户
提问于 2011-10-21 12:52:10
回答 2查看 2.5K关注 0票数 2

我试着用下面的代码模拟按键.

代码语言:javascript
代码运行次数:0
运行
复制
jQuery('input[name=renameCustomForm]').live('keyup', function (e) {
      console.log('pressed');
});
jQuery('body').click(function (e) {
        console.log(jQuery('input[name=renameCustomForm]'));
        var press = jQuery.Event("keypress");
        press.which = 13;
        jQuery('input[name=renameCustomForm]').trigger(press);
 });

我从其他帖子中得到了这段代码,但它不起作用。有人知道为什么吗?

更新

修好了..。似乎触发"keypress“并不会自动触发"keyup”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-21 13:14:39

通常,当用户向inout字段添加某些内容时,会发生以下事件:

  1. keydown (once).
  2. keypress (至少一次,当键按下down)
  3. keyup (一旦)

时,附加事件uccur )。

当一个关键事件被模拟时,没有必要所有事件都按照这个顺序发生。事件是手动分派的,因此正常的事件链不会被激活。

因此,如果手动触发keypress事件,则不会触发keyup事件。

票数 2
EN

Stack Overflow用户

发布于 2011-10-21 13:12:20

每次单击页面上的任何位置时,代码都会触发一个keypress

对于您的情况,最好使用输入框的.blur()事件。

代码语言:javascript
代码运行次数:0
运行
复制
jQuery('input[name=renameCustomForm]').live('keyup', function (e) {
      console.log('pressed');
}).live('blur', function(){
      var self = $(this);
      console.log( self );
      var press = jQuery.Event("keyup");
      press.which = 13;
      self.trigger( press );
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7849646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档