Event.keyCode不能与'on input'一起使用 - 未定义

Pal*_*ini 9 javascript jquery events input

目前我正在为项目开发一个功能,而event.keyCode出现对"on input"触发器不起作用.我正在使用Google Chrome 31和jQuery 1.10.2.

这是我在我的方法中尝试的内容:

input.on('input', function(event){
    console.log("event.charCode: " + event.charCode);
    console.log("event.keyCode: " + event.keyCode);
    console.log("event.which: " + event.which);
    console.log("window.event ? event.keyCode : event.which: " + window.event ? event.keyCode : event.which);
});
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我得到undefined了所有这些方法.我做错了什么或这是一个jQuery/Javascript问题?在这里你可以找到小提琴.

当用户在其中粘贴内容或以任何方式更改输入内容时,我希望我的输入触发.

ps:我的方法按预期工作,唯一不起作用的是......这个.

小智 7

事件输入没有键码,但您可以通过这种方式使用 inputType 属性。

console.log(event.inputType);

event.inputType == "deleteContentBackward" // Backspace
event.inputType == "deleteContentForward"  // Delete
event.inputType == "insertText"            // When insert character
Run Code Online (Sandbox Code Playgroud)


小智 5

使用可以使用keydown事件

input.on('keydown ', function(event){
    console.log("Code: " + event.which);
});
Run Code Online (Sandbox Code Playgroud)


dan*_*son 2

我认为这是因为您的事件不正确,您正在为输入匹配“输入”事件。
这可能就是您想要的(注意paste事件):

jQuery(function () {
  jQuery("#post-input").on('keyup', function(event){
    if(!(event.ctrlKey || $(this).data('skipkeyup'))) {
        console.log('keyup', event);
    } else {
        $(this).data('skipkeyup', true)
    }
  }).on('paste', function (event) {
      console.log('paste event', event);
  }).on('keydown', function(){
      $(this).data('skipkeyup', false)
  })
Run Code Online (Sandbox Code Playgroud)

});

http://jsfiddle.net/uBZF9/9/