我有类似:如何在alert()后给焦点()?
<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??
}
}
您可以在设置焦点之前尝试一个小超时吗? – pimvdb
并不是屏幕冻结,焦点会转到用户点击或选中的位置,我需要以某种方式取消t帽子动作并重写它以将焦点返回到'partNumber'。 –
我不确定您是否可以阻止用户选择其他选项卡。我个人也不会喜欢这一点。 – pimvdb