我想问你一些对我不起作用的事情?如果你能帮帮我的话。
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
}
答案 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