没有在keyup函数中获取keycode

时间:2017-12-06 10:04:58

标签: javascript jquery events onkeyup

我正在尝试将一个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?任何人都可以帮我解决这个问题吗?提前谢谢。

5 个答案:

答案 0 :(得分:1)

我想,你混合了不同的东西: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)'>

答案 1 :(得分:1)

使用内联事件会使这变得复杂。 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);
});

这是一个有效的例子:

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

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

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

<div id="testDiv"></div>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

class Obj(object):
    def __init__(self):
        self.A = 2
        self.B = 3

    def fun(self, ar):
        def funA(self):
            print self.A

        def funB(self):
            x = self.B + 4
            print self.B

        for letter in ar:
            name = 'fun' + letter + '()'
            exec(name)

obj_instance=Obj()
obj_instance.fun(['A', 'B'])

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

答案 3 :(得分:0)

Here 是您需要的。

您将该函数命名为$data = []; foreach($input as $key => $value) { $counter = 0; if($value['userTag'] =="All"){ if($counter == 0 ) {//test if is the first userTag == All $counter = 1;//increment the counter so the if doesn't trigger and the value isn't appended $data[] = $value;//add it to the array } } else { $data[] = $value;//keep the rest of the values } } return $data; ,函数的真实名称为testKeyUp()。你也不会得到shippingPackageKeyValueKeyUp(e)this

JS

event

答案 4 :(得分:0)

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

确保两者匹配。其次

onkeyup='testKeyUp(e)'