我正在尝试通过我的函数传递一个元素并输出id。
这就是我的意思:
<input id='password' style="display:inline-block" type="password" name='Password' onKeyDown="setTimeout('validate(this)', 10)" />
和javascript:
var validate = function(element)
{
alert(element.id);
}
这是正确的方法吗?当我发出警报时,所有我得到的都是未定义的谢谢。
答案 0 :(得分:4)
从setTimeout
函数调用时,this
指针不再指向input元素,而是指向window
对象。
你能做的是
onKeyDown="var self=this;setTimeout(function(){validate(self);}, 10)"
或者更好:
var validateFn = function(element) {
return function(){
alert(element.id);
};
}
并在元素上:
onKeyDown="setTimeout(validateFn(this), 10)"