我想用下面的代码模拟一个按键......
jQuery('input[name=renameCustomForm]').live('keyup', function (e) {
console.log('pressed');
});
jQuery('body').click(function (e) {
console.log(jQuery('input[name=renameCustomForm]'));
var press = jQuery.Event("keypress");
press.which = 13;
jQuery('input[name=renameCustomForm]').trigger(press);
});
我从SO上的其他帖子中得到了这段代码,但它不工作。 有人知道为什么吗?
更新
修正了......似乎触发 "按键 "不会自动触发 "按键"。
通常情况下,当用户在inout字段中添加东西时,会发生以下事件。
keydown
(一次)。keypress
(至少一次,当键被按下时,额外的事件会发生)keyup
(一次)当模拟一个关键事件时,不需要所有事件都按这个顺序发生。事件是手动派发的,所以正常的事件链不会被激活。
因此,如果您手动触发了 keypress
事件,该 keyup
事件不会被触发。
你的代码会触发一个 keypress
每次你点击页面上的任何地方时...
对于您的情况来说,最好是使用 .blur()
输入框的事件...
jQuery('input[name=renameCustomForm]').live('keyup', function (e) {
console.log('pressed');
}).live('blur', function(){
var self = $(this);
console.log( self );
var press = jQuery.Event("keyup");
press.which = 13;
self.trigger( press );
});