好的,在将其标记为重复之前,请阅读标题。
我知道你可以这样做:
var triggerevent = jQuery.Event("keypress");
triggerevent.which = 52; // 4
$("#inputfield").trigger(triggerevent);
但是,例如,如果我想触发按下“$”符号怎么办?如果不事先按 shift,您将无法做到这一点。
这怎么可能?
var triggerevent = jQuery.Event("keypress");
triggerevent.which = 36; // $
$("#textarea").on('keypress', function(e) {
if(!e.hasOwnProperty('originalEvent')) {
var c = String.fromCharCode(e.which); // $
this.value = c;
}
}).trigger(triggerevent);
更新:以编程方式插入字符,检查是否发生物理按键
更新 2:删除了整个 shiftKey 的东西,因为不再重要了
由于 jQuery 中的事件对象是从原生 DOM 事件派生的,因此您可以使用这些属性来检查按下了哪个组合。
DOM W3 参考(检查属性部分)