Javascript 无法在keyup函数中获取keycode

Javascript 无法在keyup函数中获取keycode,javascript,jquery,events,onkeyup,Javascript,Jquery,Events,Onkeyup,我正在尝试向使用jquery添加到DOM的输入字段添加一个keyup函数 $("#testDiv").html("<input id='testTextbox' name='testTextbox' type='text' onkeyup='testKeyUp(this)'>"); e.keyCode和e.which返回未定义 如何在keyup函数中获取keycode?有人能帮我修一下吗?提前谢谢。我想,你在混合不同的东西:纯js和jquery。仅使用jquery,您就可以使用下面

我正在尝试向使用jquery添加到DOM的输入字段添加一个keyup函数

$("#testDiv").html("<input id='testTextbox' name='testTextbox' type='text' onkeyup='testKeyUp(this)'>");
e.keyCode
e.which
返回未定义


如何在keyup函数中获取keycode?有人能帮我修一下吗?提前谢谢。

我想,你在混合不同的东西:
纯js
jquery
。仅使用
jquery
,您就可以使用下面的代码片段实现所需的功能。
$(“#测试文本框”)。在(“键控”,函数(e)上{
警报(e.keyCode+“:”+e.which);
})

正是您所需要的

您将函数命名为
testKeyUp()
,函数的真实名称为
shippingPackageKeyValueKeyUp(e)
。此外,您不会得到
,而是
事件

JS

$(“#testDiv”).html(“”);
函数testKeyUp(e){
警报(e.keyCode+“:”+e.which);
}

首先,我注意到事件处理程序的函数名与onkeyup回调名称不匹配

确保两人匹配。其次

onkeyup='testKeyUp(e)'

使用内联事件使这变得复杂<代码>e在函数中充当此。稍微修改代码以删除内联事件,并将其编写为:

$("#testDiv").html("<input id='testTextbox' name='testTextbox' type='text'>");

var textInput = document.getElementById('testTextbox');

textInput.addEventListener('keyup', function(e){
alert(e.keyCode+" : "+e.which);
});
$(“#testDiv”).html(“”);
var textInput=document.getElementById('testTextbox');
textInput.addEventListener('keyup',函数(e){
警报(e.keyCode+“:”+e.which);
});

$(“#testDiv”).html(“”);
$('#testTextbox')。在('keyup',函数(e)上{
警报(e.keyCode+“:”+e.which);
});
下面是一个工作示例:

$(“#testDiv”).html(“”);
var textInput=document.getElementById('testTextbox');
textInput.addEventListener('keyup',函数(e){
警报(e.keyCode+“:”+e.which);
});

$(“#testTextbox”)。在(“键控”上,函数(e){
如果(e.key==“输入”){
//你的逻辑在这里
}
})

正如@edkeveked在上面回答的,但是我会使用event.key而不是event.keycode作为keycode,并且根据

您正在将元素分配给testKeyUp Handler,您正在调用
shippingPackageKeyValueKeyUp
函数?抱歉。那是个打字错误。我已经编辑了这个问题。请尝试将
事件
传输到eventHandler,而不是
,像这样-
onkeyup='testKeyUp(event)
至少有一个人知道应该将eventHandler作为在所有浏览器中获取事件的唯一可靠方法:)
onkeyup='testKeyUp(e)'
$("#testDiv").html("<input id='testTextbox' name='testTextbox' type='text'>");

var textInput = document.getElementById('testTextbox');

textInput.addEventListener('keyup', function(e){
alert(e.keyCode+" : "+e.which);
});
$("#testDiv").html("<input id='testTextbox' name='testTextbox' type='text'>");

$('#testTextbox').on('keyup', function(e){
alert(e.keyCode+" : "+e.which);
});
    $("#testTextbox").on("keyup", function(e){
    if (e.key=="Enter"){
        // Your logic here
    }
    })

    <script 
    src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
    </script>
    <input id='testTextbox' name='testTextbox' type='text' >