没有在 keyup 函数中获取键码

Not getting keycode in keyup function

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

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

我想在用户在 testTextbox 中输入值并按下回车键后执行一些操作。

keyup 函数如下:

function testKeyUp(e) {
alert(e.keyCode+" : "+e.which);
}

e.keyCodee.which 返回未定义。

如何获取keyup函数中的keycode?谁能帮我解决这个问题?提前致谢。

我想,您正在混合不同的东西:pure jsjquery。仅使用 jquery,您可以通过下面的代码片段实现您想要的效果。

$("#testTextbox").on("keyup", function(e){
alert(e.keyCode+" : "+e.which);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id='testTextbox' name='testTextbox' type='text' >

仅使用 pure Js

function testKeyUp(e){
  alert(e.keyCode+" : "+e.which);
}
<input id='testTextbox' name='testTextbox' type='text' onkeyup='testKeyUp(event)'>

Here 就是您所需要的。

您将函数命名为testKeyUp(),函数的真实名称是shippingPackageKeyValueKeyUp(e)。你也不会得到 thisevent

JS

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

function testKeyUp(e) {
alert(e.keyCode+" : "+e.which);
}

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

确保两者匹配。其次

onkeyup='testKeyUp(e)'

使用内联事件使这一点变得复杂。 e 在函数中充当 this。稍微修改代码以删除内联事件会更容易,而是将其写为:

$("#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);
});

这是一个工作示例:

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

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

textInput.addEventListener('keyup', function(e){
alert(e.keyCode+" : "+e.which);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="testDiv"></div>

    $("#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' >

正如@edkeveked 在上面回答的那样,但我会使用 event.key 而不是 event.keycode 作为键码根据 https://developer.mozilla.org/en-US/docs/Web/Events/keyup

弃用