QRTEngine - 用点击事件模拟按键

QRTEngine - Simulating keypress with click event

这方面的文档不多,但我希望有人能帮助我。

我正在使用 http://qrtengine.com/ for Qualtrics (http://www.qualtrics.com/) 的人们提供的 QRTEngine - 一个调查工具。

我已经设法很容易地设置了一个 'agree/disagree' 调查(用户按 'z' 键表示不同意,按 'm' 键表示同意)

问题是我也需要这个才能在移动设备上工作。现在我尝试了以下方法:

var j = jQuery.noConflict();
(function( j ) {
  j(function() {
    // More code using $ as alias to jQuery

var e = j.Event("keyup");

e.which = 77; // # Some key code value

j( ".agree" ).bind( "click", function( event ) {
       j(this).trigger(e);
    alert(e.which);
});


  });
})(j);

执行警报但似乎不模拟按键。我认为我的代码没有任何问题,但我想知道我是否遗漏了与我正在使用的 QRTEngine 有关的某些内容。

任何帮助 (ANY) 将不胜感激。

谢谢

$ 是 Qualtrics 中 Prototype 框架的别名。如果你想为 jQuery 使用别名,你需要将其设为 $j:

之类的别名
var $j = jQuery.noConflict();

编辑:也许这是你的问题......来自 http://bililite.com/blog/2015/01/14/rethinking-fn-sendkeys/ :

"Modern browsers won't let synthetic events (triggered with dispatchEvent) execute their default actions (meaning the action that would occur if the event was triggered by a user action). The Event object has a read-only field called isTrusted that is false for anything but unmodified user-initiated events. These are called "trusted events”,我理解理由,但他们做得太过火了。这使得实现虚拟键盘变得不可能,因为触发 keydown 或 keypress 事件是不可信的,也不会插入字符(默认操作)。

查看上面提到的 link 以获得可能的解决方案。