我遇到了一个问题。
我有一个简单的表单:
<form method="post" action="login.php">
<input type="text" name="Username" value="Username" />
<input type="password" name="Password" value="Password" />
<input type="submit" name="submit" value="Log in" />
</form>
以下是脚本内容:
function focus(element) {
console.log('focused ' + element.getAttribute('name'));
var elementValue = element.value;
var elementName = element.getAttribute('name');
elementValue = (elementValue == elementName ? '' : elementValue);
}
var fields = ['Username', 'Password'];
for (var i = 0; i < fields.length; i++) {
console.log(i + ': ' + fields[i]);
var input = document.getElementsByName(fields[i])[0];
console.log('input value: ' + input.value);
input.onFocus = focus(input);
}
这段代码应该为每个输入框创建一个“焦点”事件监听器,并在用户单击任何字段时调用“focus()”函数。但由于某种原因,控制台显示它仅为每个字段循环一次调用函数,然后停止响应未来的“焦点”事件。
所以我猜测这行代码
input.onFocus = focus(input);
有问题,但我不知道是什么。我错过了什么?
this
。 - adeneo