我有一个类似这样的东西:
<input type="textbox" id="partNumber" onChange="validatePart(this);">
<input type="textbox" id="quantity" onfocus="saveOldQuantity(this);">
onChange
事件在更改完成并且文本框失去焦点后正确触发。当quantity
获得焦点时,onfocus
事件会正确触发以保存quantity
的旧值,在进行更改之前。如果
validatePart()
检测到无效的partNumber
值,则会向用户发出alert
。在alert()
清除后,我想将焦点返回到partNumber
输入框。但是在输入节点上执行focus()
不会使其获得焦点。在这里进行调试很棘手,因为IE调试窗口的交互当然会改变焦点。如何确保在
validatePart()
中检测到错误时焦点返回到partNumber
?编辑:
validatePart()
的简单版本:function validatePart(node) {
if (!node.value) {
alert('Please enter a part number.');
node.focus(); // <======= why isn't this having any effect??
}
}
node.focus();
聚焦节点时的情况。由于某种原因,此处focus()
方法无法正常工作。 - Jonathan MsetTimeout(function() { node.focus(); }, 500);
。 - pimvdb