1

我想在输入键的文本字段上使用 jquery 触发按键事件。我目前正在这样做:

var key = jQuery.Event('keypress');
key.keyCode = $.ui.keyCode.ENTER;
$('#txtb').trigger(key);

它在 Firefox 上成功触发事件,但在 Chrome 和 IE 上失败。

当我在调用函数中捕获密钥时,它在 Chrome 中显示为未定义,但在 Mozilla 中运行良好。

任何帮助或建议将不胜感激。

4

4 回答 4

2

你能试试这个代码吗

$('#txtb').trigger( "keypress", [13] ); 
于 2012-07-11T12:38:54.207 回答
1

您可以尝试event.which使用哪个 JQuery 对其进行规范化以实现跨浏览器一致性:

对于键或鼠标事件,此属性指示按下的特定键或按钮。

$('html').on('keyup', function(e){
   if (e.which == 13) { // if "enter" key is pressed
     var e = jQuery.Event("keypress", { keyCode: 64 }); // you can specify your desired key code 
     $('#txtb').trigger(e); // or $('#txtb').trigger("keypress")
   }
})

演示

于 2012-07-11T12:35:49.737 回答
0

这适用于触发特定的键盘按键。

var e = $.Event("keypress"); /* || keydown || keyup */
e.which = 65; /* set the key code here */
$(selector).trigger(e);
于 2013-07-09T16:01:47.530 回答
0

这样做: -

$('#txtb').keydown(function(e) {
    if (e.keyCode == 13)
      alert('Handler for .keydown() called.');
});

参考现场演示

于 2012-07-11T12:54:51.710 回答