0

好的,在将其标记为重复之前,请阅读标题。

我知道你可以这样做:

var triggerevent = jQuery.Event("keypress");
triggerevent.which = 52; // 4
$("#inputfield").trigger(triggerevent);

但是,例如,如果我想触发按下“$”符号怎么办?如果不事先按 shift,您将无法做到这一点。

这怎么可能?

4

2 回答 2

1
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);

jsfiddle

更新:以编程方式插入字符,检查是否发生物理按键

更新 2:删除了整个 shiftKey 的东西,因为不再重要了

于 2012-09-10T08:23:40.470 回答
0

由于 jQuery 中的事件对象是从原生 DOM 事件派生的,因此您可以使用这些属性来检查按下了哪个组合。

DOM W3 参考(检查属性部分)

于 2012-09-10T08:14:03.313 回答