面对在javascript中触发按键事件的问题

时间:2015-11-26 14:12:25

标签: javascript javascript-events

我想在特定条件下触发Tab键的按键事件,但我收到错误。

  

错误:未捕获的TypeError:event.initKeyEvent不是函数

代码

function simulateKeyPress(element) {
  console.log("Simulate")
  var event = document.createEvent('KeyboardEvent'); // create a key event

  // define the event
  event.initKeyEvent("keypress", // typeArg,
    true, // canBubbleArg,
    true, // cancelableArg,           
    null, // viewArg,  Specifies UIEvent.view. This value may be null.
    false, // ctrlKeyArg,
    false, // altKeyArg,
    false, // shiftKeyArg,
    false, // metaKeyArg,
    9, // keyCodeArg,
    9); // charCodeArg);
  element.dispatchEvent(event);
}

function keyPress(event) {
  simulateKeyPress(this);
}

(function() {
  var inputs = document.getElementsByTagName("input");
  for (var i = 0; i < inputs.length; i++) {
    inputs[i].addEventListener("keypress", keyPress);
  }
})()
<input type="text">
<input type="text">

我一直在使用以下链接作为参考,但仍无法使其正常工作。

以下是Fiddle

的链接

修改

Updated Fiddle使用KeyboardEvent,但仍然无法触发Tab按键事件。

另外,我不是在寻找jQuery。

提前致谢。

1 个答案:

答案 0 :(得分:1)

Lead.joins("INNER JOIN todos ON leads.user_id = todos.target_id")
    .where("leads.deadline_at" => (date_a..date_b))
    .select("leads.*, todos.deadline_at")
    .order("todos.deadline_at desc")

和MDN文档说:

  

此功能已从Web标准中删除。一些   浏览器可能仍然支持它,它正在被删除。   不要在旧项目或新项目中使用它。使用它的页面或Web应用程序可能   随时休息。

     

不要再使用此方法,请使用KeyboardEvent()构造函数    代替。