gpt4 book ai didi

javascript - 如何在 alert() 之后给予 focus()?

转载 作者:太空狗 更新时间:2023-10-29 13:20:12 25 4
gpt4 key购买 nike

我有这样的东西:

<input type="textbox" id="partNumber" onChange="validatePart(this);">
<input type="textbox" id="quantity" onfocus="saveOldQuantity(this);">

onChange 事件在进行更改后正确触发,并且文本框失去焦点。当 quantity 获得焦点时,onfocus 事件会正确触发以在进行更改之前保存 quantity 的旧值。

如果 validatePart() 检测到无效的 partNumber 值,它会提醒用户注意该事实。 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??
}
}

最佳答案

添加一个小超时并将焦点重置回 partNumber 文本框应该可以解决问题。

因此你的 validatePart() 函数变成了这样的:

function validatePart(node) {
if (!node.value) {
alert('Please enter a part number.');
setTimeout(function(){node.focus();}, 1);
}
}

Here's a quick "live" example无论在 partNumber 文本框中输入什么,它都会触发一个 alert 并成功地将焦点返回到 partNumber 文本框(即使您关闭它到 quantity 文本框。

关于javascript - 如何在 alert() 之后给予 focus()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com