e.keyCode不起作用

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

HTML:

 

Javascript代码:

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

只需最少的修改,

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

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

如果您修改已发布的js并为我提供了一个名称而不更改函数参数,您会发现该id将包含事件对象。

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

然后尝试以下方法:

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

}

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

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

 function inputKeypress(id, e) { do stuff } 

你需要给function提供一些其他名称而不是function

使用this.id只是id

你的php文件:

  

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

HTML / PHP

  

JavaScript的

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

匿名函数作为$(...).keyup(handler)的处理程序传递$(...).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

您不能在onkeyup事件中使用function作为函数名。