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
作为函数名。