我正在尝试使用以下代码模拟按键...
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上的其他帖子中获取此代码,但它不起作用。谁知道为什么?
更新
修正了......它似乎触发“按键”不会自动触发“键盘”
答案 0 :(得分:2)
通常,当用户向inout字段添加内容时,会发生以下事件:
keydown
(一次)。keypress
(至少一次,按下按键时会发生其他事件)keyup
(一次)模拟关键事件时,不必按此顺序发生所有事件。手动调度该事件,因此不会激活正常的事件链。
因此,如果您手动触发keypress
事件,则不会触发keyup
事件。
答案 1 :(得分:0)
每次点击页面上的任何位置时,您的代码都会触发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 );
});