e.keyCode不起作用

时间:2014-01-18 12:47:28

标签: javascript jquery html keycode

我想问你一些对我不起作用的事情?如果你能帮帮我的话。

Html:

<input type='text' class='blabla' onkeyup="function(id, e);">

Javascript代码:

function(id, e) {
  var comment = $(".blabla").val();`<br />
  // alert(message);  WORK
   alert(e.keyCode) 
 // DOES NOT WORK
}

6 个答案:

答案 0 :(得分:1)

首先给函数命名。让我们说function keyfinder。然后在密钥上调用onkeyup="function keyfinder(id, event);"

然后尝试以下方法:

function keyfinder(id, e){
var eventval = e || window.event;
var comment = $(".blabla").val();
// alert(message); WORK
alert(eventval.keyCode);

}

答案 1 :(得分:1)

经过最少的修改,

<input type='text' class='blabla' onkeyup="doSomething(e)">

function doSomething(e){
var comment = $(".blabla").val();
var id = this.id;
alert(e.keyCode) // Now it should work
}

doSomething函数中的第一个参数是事件对象。 this变量将返回对input元素的引用。

如果您修改已发布的js并在不更改函数参数的情况下为函数提供名称,您会发现id将包含事件对象。

答案 2 :(得分:0)

您无法在function事件中使用onkeyup作为功能名称。

答案 3 :(得分:0)

功能不能是功能名称。在您的HTML中,将function(id, e)更改为inputKeypress(id, e)或您认为合适的任何其他名称。

在你的JavaScript中,声明他的功能如下:

function inputKeypress(id, e) {
    do stuff
}

答案 4 :(得分:0)

您需要为function

提供除function之外的其他名称

使用this.id

id个整数

你的php文件:

<input type='text' class='blabla' onkeyup="funkeyup(this.id, e);">

答案 5 :(得分:0)

您显然正在使用jQuery,因此您也可以在脚本中定义keyup事件:

HTML / PHP

<input type="text" class="blabla" id="mySuperUniqueId" />

的JavaScript

$(".blabla").keyup(function(e) {
  console.log("pressed key with code", e.keyCode, "on id", this.id);
});

作为$(...).keyup(handler)中的处理程序传递的匿名函数接收您正在寻找的jQuery事件。在该函数中,this被设置为事件所附加的DOM元素,在本例中是input字段。 如果您打算在该字段上工作,例如使用.val(),您必须首先将其包含在$(...)中:

$(".blabla").keyup(function(e) {
  var $input = $(this)
  console.log("current value is", $input.val());
});

请注意,当您使用keydown代替keyup时,该值可能没有更改。

如需更多信息,请查看jQuery-API