【问题标题】:jQuery simulate keypress on inputjQuery在输入时模拟按键
【发布时间】:2017-03-09 10:12:11
【问题描述】:

我尝试了答案here,但它对我不起作用。

JSFiddle:https://jsfiddle.net/Ldu6wwv0/

$('input').val('test').trigger(jQuery.Event('keypress', {keycode: 13}));

$('input').on('keypress', function(){
    $('p').text("worked");
});

我做错了什么?

【问题讨论】:

  • 您的 JSFiddle 在我的浏览器 (Chrome) 上运行良好。
  • 我也很好。似乎是什么问题?
  • 这很奇怪。我也在 chrome 上,但它不起作用 - 版本 56。我刚刚在 Safari 和 Firefox 上尝试过.. 没有骰子。

标签: javascript jquery


【解决方案1】:

问题似乎是您的代码顺序。您触发按键的代码是在事件处理程序之前定义的。

这似乎现在有效。 (JSFiddle)

$('input').on('keypress', function(){
    $('p').text("worked");
});

$('input').val('test').trigger(jQuery.Event('keypress', {keycode: 13}));

更新: 另外请不要使用密钥代码,因为它已被弃用 (link),并且在某些情况下可能无法使用。我个人遇到过这个问题。请改用 which。

JSFiddle

$('input').on('keypress', function(){
    $('p').text("worked");
});

var e = jQuery.Event("keypress");
e.which = 13;
$("input").focus().val('test').trigger(e);

【讨论】:

  • 现在工作!谢谢
猜你喜欢
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
  • 2010-11-30
  • 1970-01-01
  • 2018-11-28
  • 2017-04-29
相关资源
最近更新 更多